selectOneMenu Question
konikoni Mar 25, 2007 7:11 AMI shoud like to implement selection from first selectOneMenu, object of which is supplied contains
a list, this is spent with the second selectOneMenu.
The first menu functions and the second not, maybe somebody can help me.
Here is my code:
Component:
<framework:entity-query name="allHer" ejbql="select h from Hersteller h" order="h.bezeichnung" > </framework:entity-query>
View:
<ui:define name="main"> <s:link value="zurueck" view="/home"/> <s:div> <a4j:region> <s:div id="frm"> <a4j:form> <h:selectOneMenu value="#{hersteller}"> <s:convertEntity /> <s:selectItems value="#{allHer.resultList}" var="her" label="#{her.bezeichnung}" noSelectionLabel="Bitte waehlen..." /> <a4j:support event="onchange" action="#{fahrzeugact.setModel}" reRender="msg,frm1"> <s:conversationPropagation type="join" /> </a4j:support> </h:selectOneMenu> </a4j:form> </s:div> </a4j:region> <a4j:region> <s:div id="frm1"> <a4j:form> <h:selectOneMenu value="#{kmd}" disabled="#{empty hersteller.kfzmodel}"> <s:convertEntity /> <s:selectItems value="#{hersteller.kfzmodel}" var="md" label="#{md.bezeichnung}" noSelectionLabel="Bitte waehlen..." /> <a4j:support event="onchange" action="#{fahrzeugact.setModel1}" reRender="msg"> <s:conversationPropagation type="join" /> </a4j:support> </h:selectOneMenu> </a4j:form> </s:div> </a4j:region> <a4j:region> <s:div id="msg"><h:messages globalOnly="false"/> </s:div> </a4j:region> </s:div> </ui:define> Session: @Name("fahrzeugact") @Stateful public class Fahrzeug implements FahrzeugInterface { @DataModel private List<Hersteller> hrList; private List<Hersteller> hrsList; @In(required=false) private KfzModel kmd; @PersistenceContext private EntityManager em; @In(required=false) private Hersteller hersteller; @Begin public List<Hersteller> getHrsList() { return em.createQuery("from Hersteller where akzept = true").getResultList(); } public void setModel(){ // md System.out.println("--------------- " + hersteller.getBezeichnung()); } public void setModel1(){ // md System.out.println("--------------- 1 " + kmd.getBezeichnung()); } @End public void reset() {} @Destroy @Remove public void destroy() {} }
I believe that it is because of different contexts, I must in component.xml defined inquiry to tie, white however not how. And if I define the whole over factories, then over messages on the side one spends: invalid value.
I have the example ?UI? looked at, there am realized it over HomeEntity. How can I realize this completely on source code level, without HomeEntity?
Or think I there in wrong direction?