Hello everybody
I am new to this forum and new to MyFaces.
I have created the following JSF page:
<h:selectOneMenu id="vertragid" required="true"
value="#{rufnummerEditBean.vertragid}"
onchange="submit()" immediate="true"
valueChangeListener="#{rufnummerEditBean.changeVertragid}">
<f:selectItems value="#{rufnummerEditBean.vertragidList}"/>
</h:selectOneMenu>
<h:selectOneMenu id="tarifid" required="true"
value="#{rufnummerEditBean.tarifid}"
onchange="submit()" immediate="true"
valueChangeListener="#{rufnummerEditBean.changeTarifid}">
<f:selectItems value="#{rufnummerEditBean.tarifidList}"/>
</h:selectOneMenu>
The associated code is:
public List getVertragidList() {
if(debugInfo) System.out.println("getVertragidList.1");
List result=new ArrayList();
for(Vertrag vertrag:vertragDAO.findAll()) {
result.add(new SelectItem(
vertrag.getId(),vertrag.getBezeichnung())
);
}
if(debugInfo) System.out.println("getVertragidList.2");
return result;
}
public void changeVertragid(ValueChangeEvent event) {
Integer newval=(Integer)(event.getNewValue());
if(debugInfo) System.out.println("changeVertragid "+newval);
setVertragid(newval);
List listTarifs=getTarifidList();
if(listTarifs.isEmpty()) setTarifid(null);
else setTarifid((Integer)(listTarifs.get(0).getValue()));
}
public Integer getVertragid() {
if(debugInfo) System.out.println("getVertragid "+vertragid);
return vertragid;
}
public void setVertragid(Integer vertragid) {
if(debugInfo) System.out.println("setVertragid "+vertragid);
this.vertragid = vertragid;
}
public Integer getTarifid() {
if(debugInfo) System.out.println("getTarifid "+tarifid);
return tarifid;
}
private void setTarifid(Integer tarifid) {
if(debugInfo) System.out.println("setTarifid "+tarifid);
this.tarifid = tarifid;
}
When I choose some value in the combo box Vertragid, the following messages are
logged:
13:22:13,203 INFO [STDOUT] getVertragidList.1
13:22:13,437 INFO [STDOUT] getVertragidList.2
13:22:13,437 INFO [STDOUT] getVertragid 470
13:22:13,453 INFO [STDOUT] getTarifidList.1 vertragid=470
13:22:13,796 INFO [STDOUT] getTarifidList.2 size=1
13:22:13,796 INFO [STDOUT] getTarifid 10000460
13:22:13,796 INFO [STDOUT] changeVertragid 10000000
13:22:13,796 INFO [STDOUT] setVertragid 10000000
13:22:13,796 INFO [STDOUT] getTarifidList.1 vertragid=10000000
13:22:14,093 INFO [STDOUT] getTarifidList.2 size=1
13:22:14,093 INFO [STDOUT] setTarifid 10000450
13:22:17,296 INFO [STDOUT] getVertragidList.1
13:22:17,515 INFO [STDOUT] getVertragidList.2
13:22:17,687 INFO [STDOUT] getTarifidList.1 vertragid=10000000
13:22:18,031 INFO [STDOUT] getTarifidList.2 size=1
In other words, the MyFaces engine first gets the value of tarifid, then calls
the valueChangeListener -changeVertragid- (which in this case modifies the
value of tarifid), then gets the new value of tarifid no more.
It is the first time I see such strange behaviour. Is this the expected
behaviour?
Regards,
RaduDumi
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3953970#3953970
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3953970
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user