Monday 15 September 2014

jsf - Edit commandLink goes to Edit page but does not populate values into input fields -



jsf - Edit commandLink goes to Edit page but does not populate values into input fields -

my edit page not display bean values when it's called datalist populated jdbc search works fine if list not jdbc search.

the delete link works fine edit link returns edit page no populated values in fields.

my bean viewscoped bean.

the datalist display page:

<h:form rendered="#{not empty usersmanagedbean.userslist}" id="form"> <div class="table-responsive"> &nbsp; <h:datatable value="#{usersmanagedbean.usermodel}" var="showuser" styleclass="table table-striped table-bordered table-hover"> <h:column> <f:facet name="header"> username </f:facet> <h:outputtext value="#{showuser.username}"/> </h:column> <h:column> <f:facet name="header"> first name </f:facet> <h:outputtext value="#{showuser.firstname}"/> </h:column> <h:column> <f:facet name="header"> lastly name </f:facet> <h:outputtext value="#{showuser.lastname}"/> </h:column> <h:column> <f:facet name="header"> security level </f:facet> <h:outputtext value="#{showuser.groupname}"/> </h:column> <h:column rendered="false"> <f:facet name="header"> security level </f:facet> <h:outputtext value="#{showuser.id}"/> </h:column> <h:column> <h:commandlink value="edit" action="#{usersmanagedbean.updateuser()}"> </h:commandlink> || <h:commandlink value="delete" onclick="if (!confirm('are sure, want delete #{showuser.username}?')) { homecoming false; } ; homecoming true; " action="#{usersmanagedbean.deleteuser(showuser)}"> </h:commandlink> </h:column> </h:datatable> <h:link outcome="adduser.xhtml" value="add new user"/> </div>

the edit page:

<h:form> <div class="form-group"> <label>first name:</label> <h:inputtext id="firstname" styleclass="form-control" value="#{usersmanagedbean.user.firstname}"></h:inputtext> <label>last name:</label> <h:inputtext id="lastname" styleclass="form-control" value="#{usersmanagedbean.user.lastname}"></h:inputtext> <label>username:</label> <h:inputtext id="username" styleclass="form-control" value="#{usersmanagedbean.user.username}"></h:inputtext> <div class="form-group"> <label>security level:</label> <h:selectonemenu id="roleselect" value="#{usersmanagedbean.user.groupname}" styleclass="form-control"> <f:selectitem itemlabel="----" itemvalue="----"/> <f:selectitem itemlabel="administator" itemvalue="admin"/> <f:selectitem itemlabel="user" itemvalue="user"/> </h:selectonemenu> </div> <label>password:</label> <h:inputsecret id="password" styleclass="form-control" value="#{usersmanagedbean.user.password}" required="true" requiredmessage="enter password"/> <h:message for="password" style="color:red"/> <label>confirm password:</label> <h:inputsecret id="password2" styleclass="form-control" required="true" requiredmessage="re-enter password"/> <h:message for="password2" style="color:red" /> <o:validateequal components="password password2" message="passwords don't match" showmessagefor="password2"/> </div> <h:commandbutton value="update" type="submit" styleclass="btn btn-default" action="#{usersmanagedbean.saveuser()}"></h:commandbutton> || <h:commandbutton value="cancel" onclick="history.back(-1);return false" styleclass="btn btn-default"></h:commandbutton> </h:form>

the method calls edit page:

public string updateuser(){ user = usermodel.getrowdata(); homecoming "edituser.xhtml"; }

no exceptions thrown @ all.

if utilize @viewscoped bean, jsf create new instance of when navigate list page edit page. have 3 alternatives can think of:

use @sessionscoped. open edit page via ajax , popup panel. use @viewscoped, add together user id url view parameter (ie. edituser.xhtml?id=123), , load user info db in edit page instead of list page, on page load. in scenario, it's best have different managed beans list , edit pages.

jsf jsf-2

No comments:

Post a Comment