Reputation: 211
I have 2 dialogs. In the 1st dialog user writes modulename and I need to pass my modulename to the second dialog and set this modulename value to bean called #{paramController.parameter.modulename}
Please, give me some ideas how to get parameter from one bean and set it to another bean?
</p:inputText>
<p:outputLabel value="Description" for="moduledescription" />
<p:inputTextarea id="moduledescription" rows="4" cols="53" autoResize="false" value="#{modulesController.selected.moduledescription}"/>
<p:outputLabel value="Database Name :" for="moduledbname" />
<p:selectOneMenu id="moduledbname" value="#{modulesController.selected.moduledbname}" style="width:342px">
<f:selectItem itemLabel="Select Connection" itemValue="" noSelectionOption="true" />
<f:selectItems var="con" value="#{sqlserverController.itemsAvailableSelectOne}" itemValue="#{sqlserverController.getSqlserver(conName)}" />
<p:ajax update="@this"/>
</p:selectOneMenu>
<p:outputLabel value="Value :" for="modulevalue" />
<p:inputTextarea id="modulevalue" rows="8" cols="53" autoResize="false" value="#{modulesController.selected.modulevalue}"/>
</p:panelGrid>
<p:commandButton actionListener="#{modulesController.create}" icon="ui-icon-check" value="Save" update="display,:ModulesListForm:datalist,:growl" oncomplete="handleSubmit(args,'ModulesCreateDialog');"/>
<p:commandButton id="btnAdd" value="Add Parameter" icon="ui-icon-plusthick" onclick="PF('dlg1').show();">
</p:commandButton>
<p:commandButton value="Cancel" icon="ui-icon-closethick" onclick="ModulesCreateDialog.hide()"/>
<br/>
</h:panelGroup>
<br/>
<h:form id="ParamForm">
<p:dialog id="AddParamDlg" header="Add Parameter" widgetVar="dlg1" minHeight="40">
<h:panelGroup id="displayParam">
<p:panelGrid columns="2">
<p:outputLabel value="Parameter Name :" for="paramname2" />
<p:inputText id="paramname2" value="#{paramController.parameter.paramname}" style="width:332px" title="#{bundleModules.CreateModulesTitle_modulename}" >
</p:inputText>
<p:outputLabel value="Default Value :" for="defaultvalue2" />
<p:inputText id="defaultvalue2" value="#{paramController.parameter.defaultvalue}" style="width:332px" title="#{bundleModules.CreateModulesTitle_modulename}"/>
<p:outputLabel value="Module Name :" for="parammodulename2" />
<p:selectOneMenu id="parammodulename2" value="#{paramController.parameter.modulename}" style="width:342px">
<f:selectItem itemLabel="Select Module Name" itemValue="" noSelectionOption="true" />
<f:selectItems var="con" value="#{modulesController.itemsAvailableSelectOne}" itemValue="#{modulesController.getModules(paramname)}" />
<p:ajax update="@this"/>
</p:selectOneMenu>
</p:panelGrid>
<p:commandButton action="#{paramController.addNewParameter}" value="Add" update="displayParam, :ModulesCreateForm:ParamForm" onclick="PF('dlg1').hide()" />
</h:panelGroup>
</p:dialog>
</h:form>
</h:form>
Upvotes: 0
Views: 1680
Reputation: 1585
First of all you have a nested tag <h:form>.....<h:form> ... </h:form> </h:form>
. You need to get rid of this.
SampleManagedBean1.java
@ManagedBean(name="SampleManagedBean1")
@ViewScoped
public class SampleManagedBean1 {
private String mModuleName = "";
public String getModuleName() {
return mModuleName;
}
public void setModuleName(String moduleName) {
this.mModuleName = moduleName;
}
/**
* invoke this API from UI to set value in this bean
*
* @param moduleName
*/
public void setValueOfModuleName(String moduleName) {
this.mModuleName = moduleName;
}
/**
* Invoke this API from UI to get value from this bean
*
* @return
*/
public String getValueOfModuleName() {
return mModuleName;
}
}
SampleManagedBean2.java
@ManagedBean(name="SampleManagedBean2")
@ViewScoped
public class SampleManagedBean2 {
private String mModuleName = "";
public String getModuleName() {
return mModuleName;
}
public void setModuleName(String moduleName) {
this.mModuleName = moduleName;
}
/**
* invoke this API from UI to set value in this bean
*
* @param moduleName
*/
public void setValueOfModuleName(String moduleName) {
this.mModuleName = moduleName;
}
/**
* Invoke this API from UI to get value from this bean
*
* @return
*/
public String getValueOfModuleName() {
return mModuleName;
}
}
From UI
SampleManagedBean2.setValueOfModuleName(SampleManagedBean1.getValueOfModuleName);
Upvotes: 1
Reputation: 1151
As I understood you have two beans, one for dialog 1 and the second for dialog2.
You can pass the "paramController.parameter" (stored in first bean) as a parameter for method (method inside second bean) which shows dialog2.
Upvotes: 0