JSF and Primefaces; form not passing validation -


disclaimer: school project.

hello,
i'm having strange issue has hold me days.
project im working on car tracking , paying system.

i'm trying add web page project adds region roads, or edits existing region.
when adding region goes fine, variables taken form , region saved database. when add code selecting , adding roads buttons not working anymore.

i found out when remove selectonemenu page loads, , submits region (withouth roads), couldn't find mistake in selectonemenu

i did research , found out problem caused validation error when button validates form. source 1: link

i tried fix problem checking if did wrong said in source 2 no success:
source 2:link

here body code of addregion.xhtml :

<body>      <ui:composition template="./templates/administrationtemplate.xhtml">         <!-- side menu -->         <ui:define name="menu">             <ui:include src="./templates/regionmenu.xhtml"/>         </ui:define>          <ui:define name="content">             <f:metadata>                 <!-- region id editing existing region -->                 <f:viewparam name="regionid" value="#{addregionbean.regionid}" required="false"/>             </f:metadata>             <h:form>                 <table>                     <tr>                         <td>                             <p:outputlabel value="naam: "/>                         </td>                         <td>                             <p:inputtext value="#{addregionbean.name}"/>                         </td>                     </tr>                     <tr>                         <td>                             <p:outputlabel value="start datum: "/>                         </td>                         <td>                             <p:calendar value="#{addregionbean.startdate}" showon="button"/>                         </td>                     </tr>                     <tr>                         <td>                             <p:outputlabel value="tarief: "/>                         </td>                         <td>                             <p:inputtext value="#{addregionbean.rate}"/>                         </td>                     </tr>                     <tr>                         <td>                             <p:outputlabel value="tarief type: "/>                         </td>                         <td>                             <p:selectonemenu value="#{addregionbean.ratetype}">                                 <f:selectitems value="#{addregionbean.ratelist}"/>                             </p:selectonemenu>                             <h:outputtext value="&lt;br/&gt;" escape="false" />                         </td>                     </tr>                     <tr>                         <td>                                </td>                         <td><p:outputlabel value="wegen: "/>                             <p:datatable value="#{addregionbean.roads}" var="road">                                 <p:column headertext="regio id + naam" >                                     <p:commandlink value="#{road.roadid}"/>                                 </p:column>                                 <p:column headertext="lengte" >                                     <p:outputlabel value="#{road.distance}"/>                                 </p:column>                                 <p:column headertext="maximum snelheid" >                                     <p:outputlabel value="#{road.maxspeed}"/>                                 </p:column>                             </p:datatable>                         </td>                         <td>                             <!-- goes wrong, when selectonemenu removed, buttons work -->                             <p:outputlabel value="voeg een weg toe: " rendered="#{addregionbean.askaddview()}" /> <br/>                             <p:selectonemenu converter="roadconverter" value="#{addregionbean.selectedroad}" rendered="#{addregionbean.askaddview()}">                                   <f:selectitems value="#{addregionbean.giveallroads()}" var="selroad" itemlabel="#{selroad.roadid}" itemvalue="#{selroad}"/>                             </p:selectonemenu> <br/>                             <p:commandbutton value="voeg toe" action="#{addregionbean.addroadtoregion}" rendered="#{addregionbean.askaddview()}"/>                         </td>                     </tr>                     <tr>                         <td>                             <p:commandbutton value="#{addregionbean.submitsort}" action="#{addregionbean.addregion()}" />                         </td>                         <td></td>                     </tr>                 </table>             </h:form>         </ui:define>     </ui:composition> </body> 

and here code of bean:

package billingadministrationsystem.beans;  import common.administration.enum.eratetype; import common.administration.iregion; import common.communication.interfaces.iregionservice; import common.communication.interfaces.iroadservice; import common.trafficmanagement.iroad; import java.io.serializable; import java.util.arraylist; import java.util.date; import java.util.list; import javax.annotation.postconstruct; import javax.ejb.ejb; import javax.enterprise.context.requestscoped; import javax.inject.named;  @named(value = "addregionbean") @requestscoped public class addregionbean implements serializable {  private double rate; private eratetype ratetype; private date startdate; private long regionid; private string name; private iregion region = null; private list<iroad> allroads; private list<iroad> roads = new arraylist<iroad>(); private iroad selectedroad = null; @ejb private iregionservice service; @ejb private iroadservice roadservice;  @postconstruct public void init() {     rate = 0;     ratetype = eratetype.cordon;     startdate = new date();     initallroads(); }  /*  * adds or changes region. called in xhtml.  */ public void addregion() {     if (region != null) {         changeregion();     } else {         service.addregion(name, rate, ratetype, startdate, roads);         //region = service.getregion(regionid);     } }  /**  * saves changes region.  */ public void changeregion() {     service.changebaserate(regionid, rate, ratetype, startdate); }  /**  * gets text submit button.  * @return returns "toevoegen" if new region , "opslaan" if region change.  */ public string getsubmitsort() {     if (askaddview()) {         return "toevoegen";     } else {         return "opslaan";     } }  /**  *   * @return returns true if region loaded , not new region.  */ public boolean askaddview() {     return (region == null ? true : false); }  public void setname(string name) {     this.name = name; }  public string getname() {     return this.name; }  /**  * gets list of possible rate sorts.  *  * @return list "cordon" , "corridor" in it.  */ public list<string> getratelist() {     list<string> strings = new arraylist<string>();     strings.add("cordon");     strings.add("corridor");     return strings; }  public double getrate() {     return rate; }  public void setrate(double rate) {     this.rate = rate; }  public string getratetype() {     return ratetype.tostring(); }  public void setratetype(string ratetype) {     if (ratetype.equals("cordon")) {         this.ratetype = eratetype.cordon;     } else if (ratetype.equals("corridor")) {         this.ratetype = eratetype.corridor;     } else {         system.out.println("could not find ratetype!");     } }  public date getstartdate() {     return startdate; }  public void setstartdate(date startdate) {     this.startdate = startdate; }  public string getregionid() {     return regionid + ""; }  public void setregionid(string regionid) {     this.regionid = long.parselong(regionid);      system.out.println("region id is: " + regionid);     setallfields(); }  /**  * sets fields of region if region must edited  * specified.  */ private void setallfields() {     if (regionid != 0) {         region = service.getregion(regionid);         rate = region.getcurrentbaserate().getbaserateid();         startdate = region.getcurrentbaserate().getstartdate();         ratetype = region.getcurrentbaserate().gettype();         roads = region.getroads();         name = region.getregionname();     } }  public list<iroad> getroads() {     return roads; }  public void setroads(list<iroad> roads) {     this.roads = roads; }  public iroad getselectedroad() {     if (selectedroad != null) {         system.out.println("getting selected road " + selectedroad.getroadid());     } else {         system.out.println("getting selected road null.");         if (allroads != null) {             selectedroad = (iroad) allroads.get(0);         } else{             system.out.println("selectedroad , allroads null.");         }     }     return selectedroad; }  public void setselectedroad(iroad selectedroad) {     system.out.println("setting selected road " + selectedroad.getroadid());     this.selectedroad = selectedroad; }  /**  * gives available roads.  *  * @return roads in system.  */ public list<iroad> giveallroads() {     return allroads; }  /**  * fills allroads variable roads reachable roadservice.  */ private void initallroads() {    allroads = roadservice.getroads(); }  /**  * adds selected road region.  */ public void addroadtoregion() {     if (selectedroad != null) {         system.out.println("adding road " + selectedroad.getroadid());         roads.add(selectedroad);     } else {         system.out.println("cannot add road region, selectedroad null!");     } } } 

so exact question is: doing wrong selectonemenu makes buttons in form stop working?

i'm sorry read, please ask if require explanation on system.

i using:
netbeans 7.2.1
glassfish 3.1.2
primefaces 3.5

any help/suggestion appreciated :)


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -