<h:form id="addForm">
<p:growl showDetail="true" id="messages" />
<ul class="#{msgs['form_ul_class']}">
<!-- Employee Number -->
<li><label for="empNo"><h1>•</h1> <span>#{msgs['form.label.emp.number']}</span></label>
<p:inputText id="empNo" name="empNo"
value="#{empDocumentBean.empDocument.empNo}"
required="true"
requiredMessage="#{msgs['err.required']} #{msgs['form.label.emp.number']}" />
</li>
<li>
<h:panelGroup id="nqpanel">
<ul>
<li>
<!-- Name --> <label for="name"><h1>•</h1>
<span>#{msgs['form.label.name']}</span></label>
<p:inputText id="name"
name="name" value="#{empDocumentBean.empDocument.name}"
required="false"
requiredMessage="#{msgs['err.required']} #{msgs['form.label.name']}" />
</li>
<li>
<!-- EID --> <label for="id" class="#{msgs['label_class']}"><h1>•</h1>
<span>#{msgs['form.label.id']}</span></label>
<p:inputText id="id"
name="id" styleClass="#{msgs['input_class']}"
value="#{empDocumentBean.empDocument.ID}"
required="false"
requiredMessage="#{msgs['err.required']} #{msgs['form.label.id']}" />
</li>
</ul>
</h:panelGroup>
</li>
<li></li>
<li>
<!-- Button to add only Name and Employee ID -->
<div>
<ul>
<li><p:commandButton value="Add"
action="#{empDocumentBean.addNameId}"
partialSubmit="true" process="@this addForm:nqpanel"
update="nqList">
</p:commandButton></li>
</ul>
</div>
<div class="table">
<p:dataTable id="nqList" tableStyle="text-align:center; font-size:14px; direction: ltr;"
var="item" value="#{empDocumentBean.nqList}">
<p:column>
<f:facet name="header">
<h:outputText value="#{msgs['form.label.name']}" />
</f:facet>
<h:outputText value="#{item.name}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{msgs['form.label.id']}" />
</f:facet>
<h:outputText value="#{item.id}" />
</p:column>
</p:dataTable>
</div>
nqList is a collection NameIdBean object with name and id properties
The method which should be executed in empDocumentBean is as below:
public void addNameId() {
if(this.empDocument.getName() != null && this.empDocument.getID() != null)
{
nqList.add(new NameIdBean(this.empDocument.getName(), this.empDocument.getID()));
}
empDocument.setName(null);
empDocument.setQID(null);
}
部分提交p:commandButton不起作用,因为&#39;添加&#39;单击按钮empDocument的bean属性(即名称和ID)仍为空。
如果p:commandButton的实现是正确的,请告诉我?如果是,那么为什么不发生部分提交。有没有其他替代方法来实现部分提交?感谢
答案 0 :(得分:1)
首先:我看到你正在使用primefaces命令按钮组件,它使用actionListener而不是动作 Command button in primefaces
第二:如果你想使用你可以使用的行动
<h:commandButton value="#{bundle['application.login']}" action="welcome"></h:commandButton>
您应该将方法 addNameId 的返回类型更改为字符串,它代表导航中的下一个页面名称