我正在尝试构建一个ajax表单。我使用名为“pageMode”的bean变量来保存表单的状态(启动,确认......等)。根据pageMode的值,我的jsf页面呈现或不呈现一些按钮。 (开始时,只显示提交按钮,提交后显示确认按钮...)
这是我的问题;
首次访问页面时,“提交”按钮正常工作,但在提交后,“确认”按钮无法正常工作(不触发bean方法),表示pageMode = confirm,
我尝试用h:pannelGrid包装我的按钮并将rendred属性放到它上面..没有用:(。(。
xhtml看起来像这样;
<h:form id="ApplicationForm" styleClass ="form-horizontal well">
<p:panel header="#{msg.bilgiler}" id="formVars" styleClass="well">
<h:panelGrid styleClass="defaultTable" id="pg" columns="2">
<h:outputText value="#{msg.ad}"/>
<p:inputText value="#{applicationFormInc.userData.userName}" rendered="#{applicationFormInc.pageMode=='start'}"/>
<h:outputText value="#{applicationFormInc.userData.userName}" rendered="#{applicationFormInc.pageMode=='confirm'}"/>
...
<p:commandLink styleClass="btn btn-primary" update="pg,confirmButtons" rendered="#{applicationFormInc.pageMode=='start'}"
action="#{applicationFormInc.confirmActionAjax}" value="Submit">
<i class="icon-remove icon-white"></i>
</p:commandLink>
<h:panelGrid id="confirmButtons" >
<p:commandLink styleClass="btn btn-primary" update="pg" rendered="#{applicationFormInc.pageMode=='confirm'}"
action="#{applicationFormInc.executeAction}" value="ConfirmAndSave" >
<i class="icon-remove icon-white"></i>
</p:commandLink>
</h:panelGrid>
</h:panelGrid>
</p:panel>
</h:form>
Bean端executeAction
public String executeAction(){
DbTools tr = new DbTools();
tr.insertRecord(getUserData());
return "index.xhtml?faces-redirect=true";
}
感谢名单。
答案 0 :(得分:0)
使用commandLinks定义要处理的内容 -
<p:commandLink .... process="ApplicationForm" >
或者如果您不想处理任何输入:
<p:commandLink .... process="@this" >