Hi everybody,
I have a SFSB in which I managed creating and editing user profile as follows:


  | @Stateful
  | @Name("userRegister")
  | @Scope(ScopeType.CONVERSATION)
  | public class UserRegisterAction implements UserRegister   {
  | 
  |     private Log logger = LogFactory.getLog(UserRegisterAction.class);
  | 
  |     private User tempUser;
  |     
  |     private HtmlSelectOneMenu selectOneUser;
  |     
  |     private SelectItem[] allUsers;
  |     private ArrayList<SelectItem> allRoles;
  |     private SelectItem[] allGroups;
  |     private boolean newUser;
  |     private Long selectedGroup = 0L; 
  |     private String selectedUsername = "0";
  |     private boolean reload = false;
  |     private UIInput username;
  |     private UIInput address;
  |     private UIInput contactNo;
  |     private UIInput mobilePhone;
  |     private String verifyPassword; 
  |     private String password;
  |     
  |     @EJB
  |     private UserDao userDao;
  |     @EJB
  |     private GroupDao groupDao ;
  |     
  | 
  |     private List<String> selectedRoles;
  |     //rest of the codes...
  | }
  | 

the problem is when I press the "Save" button to apply changes the new values 
never submit to the server and they will remain intact.

so I think the only way is to bind the items with its corresponding field at 
server-side but binding doesnt work!!

it throws exception which means this identifier can not resolve


  | javax.servlet.ServletException: /pages/main/userDifination.xhtml @57,77 
binding="#{userRegister.username}": Target Unreachable, identifier 
'userRegister' resolved to null
  |     javax.faces.webapp.FacesServlet.service(FacesServlet.java:154)
  |     
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)
  |     
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
  |     
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:100)
  |     
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
  |     
org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:29)
  |     
org.jboss.seam.servlet.SeamCharacterEncodingFilter.doFilter(SeamCharacterEncodingFilter.java:41)
  | 
  | 
  | root cause 
  | 
  | javax.faces.el.PropertyNotFoundException: /pages/main/userDifination.xhtml 
@57,77 binding="#{userRegister.username}": Target Unreachable, identifier 
'userRegister' resolved to null
  |     
com.sun.facelets.el.LegacyValueBinding.isReadOnly(LegacyValueBinding.java:84)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:84)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:94)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:94)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:94)
  |     
org.apache.myfaces.shared_impl.util.RestoreStateUtils.recursivelyHandleComponentReferencesAndSetValid(RestoreStateUtils.java:57)
  |     
org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:96)
  |     
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
  |     
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
  |     javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
  |     
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)
  |     
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
  |     
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:100)
  |     
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
  |     
org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:29)
  |     
org.jboss.seam.servlet.SeamCharacterEncodingFilter.doFilter(SeamCharacterEncodingFilter.java:41)
  | 
  | 
  | 

here is a fragment of my xhtml file:

  |                                     <h:form id="userDifination">
  |                                     <br/>
  |                                             <h:panelGroup rendered="true" 
id="mainPanel">
  |                                                     <!-- validateAll -->
  |                                                             <h:panelGrid 
rendered="true" align="center" id="mainPanel2"
  |                                                                     
rowClasses="rowTable1, rowTable2" headerClass="titleTable"
  |                                                                     
footerClass="footerTable" styleClass="borderTable"
  |                                                                     
captionClass="titleTable" columns="6" border="0" width="70%">
  |                                                                     
<f:facet name="header">
  |                                                                             
<h:outputLabel id="label1"
  |                                                                             
        value="#{bundle['userDifination.header']}" />
  |                                                                     
</f:facet>
  |                                                                     
<h:outputLabel id="userL"
  |                                                                             
        value="#{bundle['userDifination.selectUser']}" for="userMenu" />
  |                                                                     
  |                                                                     
<t:selectOneMenu id="userMenu" required="false" 
value="#{userRegister.selectedUsername}"
  |                                                                     
valueChangeListener="#{userRegister.userListValueChanged}"
  |                                                                             
onchange="submit(this)" >
  |                                                                             
<f:selectItem itemLabel="New user..." itemValue="0" />
  |                                                                             
<f:selectItems id="userList" value="#{userRegister.allUsers}" />
  |                                                                     
</t:selectOneMenu>
  |                                                                     
  |                                                                     
<h:panelGroup rendered="true" id="userPanel2">
  |                                                                     
</h:panelGroup>
  |                                                                     
<h:panelGroup rendered="true" id="userPanel3">
  |                                                                     
</h:panelGroup>
  |                                                                     
<h:panelGroup rendered="true" id="userPanel4">
  |                                                                     
</h:panelGroup>
  |                                                                     
<h:panelGroup rendered="true" id="userPanel5">
  |                                                                     
</h:panelGroup>
  |                                                                     
  | 
  |                                                                     
<h:outputLabel id="userUserNameL"
  |                                                                             
value="#{bundle['userDifination.username']}" rendered="true"
  |                                                                             
for="userUserNameT" />
  |                                                                     
<h:inputText id="userUserNameT" styleClass="textBox" 
  |                                                                             
binding="#{userRegister.username}" required="false"
  |                                                                             
value="#{tempUser.username}" readonly="#{!userRegister.newUser}"/>
  |                                                                     
<h:panelGroup rendered="true" id="userPanel">
  |                                                                             
<span class="errors"><h:message for="userUserNameT" />
  |                                                                             
</span>
  |                                                                     
</h:panelGroup>
  |                                                                     
<h:outputLabel id="userPasswordL"
  |                                                                             
value="#{bundle['userDifination.password']}"
  |                                                                             
for="userPasswordT" />
  | 
  |                                                                     
<h:inputSecret id="userPasswordT" styleClass="textBox"
  |                                                                             
value="#{userRegister.password}"  />
  |                                                                     
<h:panelGroup rendered="true" id="passPanel">
  |                                                                             
<span class="errors"><h:message for="userPasswordT" />
  |                                                                             
</span>
  |                                                                     
</h:panelGroup>
  |                                                                     
<h:outputLabel id="mobileL"
  |                                                                             
value="#{bundle['userDifination.mobile']}" for="mobileT" />
  |                                                                     
<h:inputText id="mobileT" styleClass="textBox"
  |                                                                             
value="#{tempUser.mobileContact}" />
  |                                                                     
<h:panelGroup rendered="true" id="mobilPanel">
  |                                                                             
<span class="errors"><h:message for="mobileT" /> </span>
  |                                                                     
</h:panelGroup>
  | 
  |                                                                     
<h:outputLabel id="userVerifyPasswordL"
  |                                                                             
value="#{bundle['userDifination.verifyPassword']}"
  |                                                                             
for="userVerifyPasswordT" />
  | 
  |                                                                     
<t:inputSecret id="userVerifyPasswordT" styleClass="textBox"
  |                                                                             
value="#{userRegister.verifyPassword}" />
  |                                                                     
<h:panelGroup rendered="true" id="verifyPanel">
  |                                                                             
<span class="errors"><h:message
  |                                                                             
                for="userVerifyPasswordT" /> </span>
  |                                                                     
</h:panelGroup>
  | 
  |                                                                     
<h:outputLabel id="addressL"
  |                                                                             
value="#{bundle['userDifination.address']}" for="addressT" />
  |                                                                     
<h:inputText id="addressT" styleClass="textBox"
  |                                                                             
value="#{tempUser.address}" />
  |                                                                     
<h:panelGroup rendered="true" id="addressPanel">
  |                                                                             
<span class="errors"><h:message for="addressT" /> </span>
  |                                                                     
</h:panelGroup>
  | 
  |                                                                     
<h:outputLabel id="phoneL"
  |                                                                             
value="#{bundle['userDifination.address']}" for="phoneT" />
  |                                                                     
<h:inputText id="phoneT" styleClass="textBox"
  |                                                                             
value="#{tempUser.phoneNo1}" />
  |                                                                     
<h:panelGroup rendered="true" id="phonePanel">
  |                                                                             
<span class="errors"><h:message for="phoneT" /> </span>
  |                                                                     
</h:panelGroup>
  | 
  | 
  |                                                                     
<h:outputLabel id="roleL"
  |                                                                             
value="#{bundle['userDifination.role']}" for="roleMenu" />
  |                                                                     
<h:selectManyMenu id="roleMenu"
  |                                                                             
title="#{bundle['userDifination.role']}"
  |                                                                             
value="#{userRegister.selectedRoles}" >
  |                                                                             
<f:selectItems value="#{userRegister.allRoles}" />
  |                                                                     
</h:selectManyMenu>
  |                                                                     
<h:panelGroup rendered="true" id="permissionPanel">
  |                                                                     
</h:panelGroup>
  | 
  |                                                                     
<h:outputLabel id="groupL"
  |                                                                             
value="#{bundle['userDifination.group']}" for="groupMenu" />
  |                                                                     
<h:selectOneMenu value="#{userRegister.selectedGroup}" id="groupMenu">
  |                                                                             
<f:selectItems value="#{userRegister.allGroups}" />
  |                                                                     
</h:selectOneMenu>
  |                                                                     
<f:facet name="footer">
  |                                                                             
<h:panelGrid columns="1" styleClass="scrollerTable2"
  |                                                                             
        align="center" width="20%"
  |                                                                             
        columnClasses="standardTable_ColumnCentered">
  |                                                                             
        <h:panelGroup rendered="true" id="buttonPanel">
  |                                                                             
                <input type="reset" name="_id1:_id20:_id38" value="Reset" />
  |                                                                             
                <h:commandButton type="submit" value="Back"
  |                                                                             
                        action="#{userRegister.back}" />
  |                                                                             
                <h:commandButton type="submit" value="Save"
  |                                                                             
                        action="#{userRegister.save}" />
  |                                                                             
        </h:panelGroup>
  |                                                                             
</h:panelGrid>
  |                                                                     
</f:facet>
  |                                                             </h:panelGrid>
  |                                                     <!-- validateAll -->
  |                                                     <div align="center">
  |                                                             <h:messages 
warnClass="textWarn" infoClass="textInfo"
  |                                                     fatalClass="textFatal" 
errorClass="textError" 
  |                                                             
globalOnly="true" />
  |                                                     </div>
  |                                             </h:panelGroup>
  |                                     </h:form>
  | 

I am using JBoss Seam v1.1.6 
is this a Seam issue or I've made a mistake somewhere ?

thank you so much

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4092315#4092315

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4092315
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to