rich:autocomplete component could be used to show complex popups with suggestions. You need to remember next points to use it in that way:

- Passing custom objects instead of just String's to list requires you to define var attribute (similar as using table components). That variable will be used while iterating the suggestions and encoding the popup using your custom layout.
- As it was just mentioned you're responsible for popup markup definition in that case and should use nested components for that.
- Type of the layout encoded using nested components should be defined using layout attribute. Possible values are 'list' (suggestions wrapped to HTML unordered list), 'div' (default one, suggestions wrapped with just div element) and 'table' (suggestions are encoded as table rows, columns definition required in that case).
- Using fetchValue attribute you should define the String which should be inserted to input after some row get selected. If not defined just your object toString() method used.

Note:
Both samples are using autocompleteList to populate data, however it will works the same for autocompleteMethod too.