On a JSF page data is displayed which comes from a bean in view scope. Now I would like to display the same area twice on the same page containing different data, e.g. in the first section a firstCar and in the second area a secondCar. The bean containing the information about a single car is in view scope and the EL name is "car".
The problem is that the carBean has only one EL name. How do I address it in the JSF page to refer to different instances? Would it be ok to use "search.carFirstArea.name" and "search.carSecondArea.name"? Will there really be two instances of the view scoped carBean? Will I have to duplicate the CarBean and give the second instance another EL name?
Example code:
-- first area <h:outputText value=#{car.name}"> -- second area <h:outputText value=#{car.name}">
@ManagedBean(name = "search") @ViewScoped public class SearchBean { @ManagedProperty(value = "#{car}") private Car carFirstArea; @ManagedProperty(value = "#{car}") private Car carSecondArea; public String search() { carFirstArea = ... dao search ... carSecondArea = ... dao search ... return null; } ... getters / setters ... }
@ManagedBean(name = "car") @ViewScoped public class Car { private String name; public String getName() { return name; } public String setName(String name) { this.name = name; } }
Sometimes one cannot see the forest for the trees. I created another ViewScoped bean and created two Car instances by injection into that bean - the Car class then has dependent scope. Only disadvantage is the indirect access via EL.