我是stackoverflow的新手,我希望你能帮助我。
我有一个xhtml页面,其中包含一个组合。在合成中有一个h:form
,p:commandbutton
用于提交h:form.
p:commandbutton
有一个动作,应该触发bean方法,但事实并非如此。当我尝试将p:commandbutton
放在合成之外时,在xhtml页面中,它可以正常工作。
一点点代码,所以你可以更好地解决我的问题:
index.xhtml中的部分,包括合成(这很好用):
<p:panel id="centerContentPanel" style="margin:0px; padding:0px; border:0px;">
<ui:include src="#{nCWPBean.centerPanelPage}.xhtml" />
</p:panel>
作文:
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:form id="newUserForm">
<table border="0">
<thead>
<tr>
<th><h:outputText value="creating a new User"/></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><h:outputText value="User Name"/></td>
<td><p:inputText id="username" value="#{DBconBean.uname}"/></td>
</tr>
<tr>
<td><h:outputText value="Password"/></td>
<td><p:inputText type="password" id="passwordFirst" value="#{DBconBean.pw}"/></td>
</tr>
<tr>
<td><h:outputText value="confirm Password"/></td>
<td><p:inputText type="password" id="passwordSecond" value="#{DBconBean.pw2}"/></td>
</tr>
<tr>
<td><h:outputText value="Admin"/></td>
<td><p:selectBooleanCheckbox value="#{DBconBean.rights}" id="adminCheck"/></td>
</tr>
<tr>
<td><p:commandButton type="submit" value="Submit" action="#{DBconBean.insertNewUser()}" icon="ui-icon-check"/></td>
<td><p:commandButton type="reset" value="Reset"/></td>
</tr>
</tbody>
</table>
</h:form>
</ui:composition>
当我将全部p:commandbutton
与action="#{DBconBean.insertNewUser()}"
放在index.html中时,该方法运行。
这让我很困惑......
所以,这是我的问题:如何从合成中的按钮触发Bean Methode?或者我做错了什么?
哦,当我尝试输入运行onsubmit
或onclick
的javascript函数时,它会起作用,直到该函数包含#{DBconBean.insertNewUser()};
。在这种情况下,当时函数运行时会触发方法,而不是当函数运行时......