Fah*_*kar 0 java jsf datatables commandlink jsf-2
在我的JSF文件中,我在开始时就在下面.
<h:form><h:commandLink value="Create New Staff Account" action="adminCreateStaffMember"/></h:form>.
通过使用这个,当我创建时,Create New Staff Account我被重新定向到我有表格的页面来创建新帐户.
但是,当我使用相同的内部时dataTable,不采取行动.我还在同一页上:(
<h:dataTable var="c" value="#{newStaffMemberServiceBean.newStaffMemberDataBeanList}"
styleClass="order-table"
headerClass="order-table-header"
rowClasses="order-table-odd-row,order-table-even-row"
border="1" id="staffListDataTable" width="100%">
<h:column>
<f:facet name="header">
Staff Member Name
</f:facet>
<h:form><h:commandLink value="Create New Staff Account" action="adminCreateStaffMember"/></h:form>
</h:column>
</h:dataTable>
Run Code Online (Sandbox Code Playgroud)
实际上我想要打印的是我将使用的相应工作人员的详细信息f:setPropertyActionListener.但由于上述情况不起作用,我不会继续.
请建议我哪里出错了.
我newStaffMemberServiceBean在RequestScoped
@ManagedBean(name = "newStaffMemberServiceBean")
@RequestScoped
public class NewStaffMemberServiceBean {
// some code
}
Run Code Online (Sandbox Code Playgroud)
HTML Generated如下
在外面 dataTable
<div align="right">
<form id="j_idt35" name="j_idt35" method="post" action="/adminManageStaffMember" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_idt35" value="j_idt35" />
<a href="#" onclick="mojarra.jsfcljs(document.getElementById('j_idt35'),{'j_idt35:j_idt36':'j_idt35:j_idt36'},'');return false">Create New Staff Account</a><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="2664682277023387375:-3250423983171933030" autocomplete="off" />
</form>
Run Code Online (Sandbox Code Playgroud)
内 dataTable
<form id="staffListDataTable:0:j_idt43" name="staffListDataTable:0:j_idt43" method="post" action="/adminManageStaffMember" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="staffListDataTable:0:j_idt43" value="staffListDataTable:0:j_idt43" />
<a href="#" onclick="mojarra.jsfcljs(document.getElementById('staffListDataTable:0:j_idt43'),{'staffListDataTable:0:j_idt43:j_idt45':'staffListDataTable:0:j_idt43:j_idt45'},'');return false">Create New Staff Account</a><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="2664682277023387375:-3250423983171933030" autocomplete="off" />
</form>
Run Code Online (Sandbox Code Playgroud)
我建议您对原始代码进行一些修改.首先,不要h:form为你的每commandLink一个使用,而是使用一个表格dataTable.其次,action只有在找到触发aciton的组件时才会执行.如果您使用请求范围列表,datatable那么当视图恢复时,该列表将不存在,或者可能与用于创建视图的原始视图不匹配.您可能必须将托管bean从请求范围更改为查看范围或更高.
第三,作为建议,你可以使用h:outputLink或h:link而不是commandLink,并提供f:param来简化这一点,在这种情况下你也不需要表单.
| 归档时间: |
|
| 查看次数: |
13295 次 |
| 最近记录: |