jsf 2 - JSF form posting null -


i have entity class 3 different type of fields, 1 string values, 1 integer values, , 1 date values.

@column(name = "evde_value_str") private string evdevaluestr;  @column(name = "evde_value_int") private integer evdevalueint;  @column(name = "evde_value_date") @temporal(temporaltype.timestamp) private date evdevaluedate; 

i create jsf form create new instances entity. see create different type of <h:inputtext> fields based on type of data want entity class store.

    <h:form>     <ui:repeat value="#{mainworkermb.showavailableeventdetailtypes()}" var="eventdetail">     <tr>     <td>     <h:outputtext value="#{eventdetail.edtyid.edtyname}"></h:outputtext>     </td>      <td>      <h:inputtext id="str_tst" rendered="#{eventdetail.edtyid.edtydetailtype == 'str'}"      styleclass="form-control" value="#{eventdetail.evdevaluestr}" >     </h:inputtext>      <h:inputtext id="int_tst" rendered="#{eventdetail.edtyid.edtydetailtype == 'int'}"     styleclass="form-control number_mask" value="#{eventdetail.evdevalueint}" >     </h:inputtext>      <h:inputtext id="dat_tst" rendered="#{eventdetail.edtyid.edtydetailtype == 'dat'}"     styleclass="form-control datepicker_base" value="#{eventdetail.evdevaluedate}">     <f:convertdatetime pattern="yyyy.mm.dd" />     </h:inputtext>      </td>     </tr>     </ui:repeat>     <p:commandbutton styleclass="btn btn-primary" actionlistener="#{mainworkermb.createnewevent()}" value="save" />     </h:form> 

and jsf generated html:

<table class="table table-bordered table-hover">  <tr> <td> dummy str </td>                                                    <td> <input id="j_idt57:j_idt64:0:str_tst" type="text" name="j_idt57:j_idt64:0:str_tst" class="form-control" /> </td>                                                    </tr> <tr> <td> dummy int </td>                                                    <td><input id="j_idt57:j_idt64:1:int_tst" type="text" name="j_idt57:j_idt64:1:int_tst" class="form-control" /> </td> </tr> <tr> <td>dummy dat </td>                                                    <td><input id="j_idt57:j_idt64:2:dat_tst" type="text" name="j_idt57:j_idt64:2:dat_tst" class="form-control" /> </td>                                                    </tr> </table> 

so see type of field generated properly.

this backing bean method return entity instances:

public list<btreventdetail> showavailableeventdetailtypes() {         log.debug("invoked..");         list<btrdeventdetailtype> detailtypelist = sessionbucketmb.getavailableeventdetaillist();         detaillist.clear();         if (detailtypelist != null) {             (btrdeventdetailtype dettyinstance : detailtypelist) {                  btreventdetail newdetail = new btreventdetail();                 log.debug("setting detail instance dettyinstance: " + dettyinstance.getedtydetailtype());                 newdetail.setedtyid(dettyinstance);                 detaillist.add(newdetail);             }         }         return detaillist;     } 

and first few line of createnewevent() method:

public void createnewevent() {         log.debug("invoked...");         try {             newevent = new newevendto();              (btreventdetail detail : detaillist) {                  log.debug("detail: " + detail.getedtyid().getedtyname() + " value: " + detail.getevdevaluestr());              }  ..  .. 

after hit save button see in post @ webconsole:

javax.faces.partial.ajax    true javax.faces.source  j_idt57:j_idt71 javax.faces.partial.execute @all j_idt57:j_idt71 j_idt57:j_idt71 j_idt57 j_idt57 j_idt57:j_idt60 18 j_idt57:j_idt64:0:str_tst   zzzz j_idt57:j_idt64:1:int_tst   111 j_idt57:j_idt64:2:dat_tst   2017.11.11 javax.faces.viewstate   -2967681892162587485:-6016297341844807895 

and in backing bean:

2017-09-12 09:13:19 createnewevent debug mainworkermb:277 - invoked... 2017-09-12 09:13:19 createnewevent debug mainworkermb:283 - detail: dummy str value: zzzz 2017-09-12 09:13:19 createnewevent debug mainworkermb:283 - detail: dummy int value: null 2017-09-12 09:13:19 createnewevent debug mainworkermb:283 - detail: dummy dat value: null 

that means, string field posting data. other field's value null.

can me why that?

update!

in backing bean, logged stringvalue before. there isn't error, missing values doesn't seen in backing bean log.

        log.debug("detail: " + detail.getedtyid().getedtyname() + " value: " + detail.getevdevaluestr()); 

after added 2 lines values showing in backing bean log:

    log.debug("detail: " + detail.getedtyid().getedtyname() + " value: " + detail.getevdevalueint());     log.debug("detail: " + detail.getedtyid().getedtyname() + " value: " + detail.getevdevaluedate()); 

thank help, , sorry.

check eventdetail.edtyid.edtydetailtype. may not rendered. 3 input elements not rendered @ same time.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -