У меня проблема с несколькими выпадающими списками, также я использую простые символы. Мой код, как показано ниже;
xhtml page:
<f:view xmlns="http://www.w3.org/19399/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:pm="http://primefaces.prime.com.tr/mobile"
contentType="text/html">
<pm:page title="Title">
<pm:view id="organizationView" swatch="b">
<pm:header title="Title">
<f:facet name="right">
<pm:button value="Logout" icon="minus" />
</f:facet>
</pm:header>
<pm:content>
<h:form id="organizationForm" prependId="false">
<p:separator />
<h:selectOneMenu id="company" value="#{myView.selected}" >
<f:selectItem value="#{null}" itemLabel="Select company..." noSelectionOption="true" />
<f:selectItems value="#{myView.companyList}"
var="company" itemLabel="#{company.name}" itemValue="#{company.companyId}"/>
<p:ajax immediate="true" update="organization" listener="#{myView.loadOrganization}" />
</h:selectOneMenu>
<h:selectOneMenu id="organization" value="#{myView.organization.orgId}">
<f:selectItem itemLabel="Select Organization..." itemValue="" />
<f:selectItems value="#{myView.orgList}"
var="organization" itemLabel="#{organization.name}" itemValue="#{organization.orgId}"/>
</h:selectOneMenu>
<p:separator />
</h:form>
</pm:content>
</pm:view>
</pm:page>
и бэк-бин выглядит так:
@Component("myView")
@Scope("view")
public class MyView implements Serializable {
private Long selected;
private List<Company> companyList;
private Company company;
private Organization organization;
private List<Organization> orgList;
@Autowired
private MyViewService myViewService;
public MyView() {
}
@PostConstruct
public void init(){
companyList = myViewService.findAllCompany();
}
public void loadOrganization() {
if(selected != null && selected >0L)
orgList = myViewService.findGroupsByCompanyId(selected);
}
public void setCompany(Company company) {
this.company = company;
}
public Company getCompany() {
return company;
}
public List<Company> getCompanyList() {
return companyList;
}
public void setCompanyList(List<Company> companyList) {
this.companyList = companyList;
}
public List<Organization> getOrgList() {
return orgList;
}
public void setOrgList(List<Organization> orgList) {
this.orgList = orgList;
}
public Organization getOrganization() {
return organization;
}
public void setOrganization(Organization organization) {
this.organization = organization;
}
public myViewService getMyViewService() {
return myViewService;
}
public void setMyViewService(MyViewService myViewService) {
this.myViewService = myViewService;
}
public Long getSelected() {
return selected;
}
public void setSelected(Long selected) {
this.selected = selected;
}
}
когда я изменяю комбинированный список компании, он вызывает loadOrganization () метод, но выбранный значение устанавливается в ноль . Как я могу получить значение selected от компании combobox?
Спасибо всем за помощь.