I have a backing bean "folderBean" who has a get/setParent(FolderBean b)
method for the parent. I have the following code in the first page
action method....
FolderBean parent = new FolderBean();
parent.setNodeId(nodeId);
parent.setName(node.getDescription());
parent.setDescription("TempDescriptionDean");
ValueBinding bind =
FacesContext.getCurrentInstance().getApplication().createValueBinding("#{folderBean}");
FolderBean projBean = (FolderBean)bind.getValue(ctx);
projBean.setParent(parent);
projBean.setDescription("testing out");
The second page of the application renders fine and pulls data from both
beans(the projBean and parent above). The problem comes when I submit
the next page. folderBean and it's data is fine except getParent() is
null!!!!! Why is this and how do I work around it. I started with
outputText on the folderBean properties. I switched to inputText
readonly="true" but this only resulted in model update problems....I
believe these update problems were because getParent is null for some
reason. I think I have a work around but wanted to understand this
better. jsp code for the second page is below also. Below that is my
actual FolderBean code. thanks, dean
<h:outputText value="#{msgs['parentFolderId']}" />
<h:panelGroup>
<h:inputText id="parentNodeId" readonly="true"
value="#{folderBean.parent.nodeId}" />
<t:message id="parentNodeIdError"
for="parentNodeId" styleClass="error" />
</h:panelGroup>
<h:outputText value="#{msgs['parentFolderName']}" />
<h:panelGroup>
<h:inputText id="parentName" readonly="true"
value="#{folderBean.parent.name}" />
<t:message id="parentNameError" for="parentName"
styleClass="error" />
</h:panelGroup>
<h:outputText
value="#{msgs['parentFolderDescription']}" />
<h:panelGroup>
<h:inputText id="parentDesc" readonly="true"
value="#{folderBean.parent.description}" />
<t:message id="parentDescError" for="parentDesc"
styleClass="error" />
</h:panelGroup>
<h:outputLabel for="folderName"
value="#{msgs['folderName']}" />
<h:panelGroup>
<h:inputText id="folderName"
value="#{folderBean.name}" required="true">
</h:inputText>
<t:message id="folderNameError" for="folderName"
styleClass="error" />
</h:panelGroup>
<h:outputLabel for="folderDescription"
value="#{msgs['folderDescription']}" />
<h:panelGroup>
<h:inputText id="folderDescription"
value="#{folderBean.description}" required="true">
</h:inputText>
<t:message id="folderDescError"
for="folderDescription" styleClass="error" />
</h:panelGroup>
<h:panelGroup />
<h:commandButton id="validateButton"
value="#{msgs['submitButton']}"
action="#{folderBean.submit}" />
public class FolderBean {
private static final Logger log =
Logger.getLogger(FolderBean.class.getName());
private FolderBean parent;
private Long nodeId;
private String name;
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getNodeId() {
return nodeId;
}
public void setNodeId(Long nodeId) {
this.nodeId = nodeId;
}
public FolderBean getParent() {
return parent;
}
public void setParent(FolderBean parent) {
this.parent = parent;
}
}