我的菜单有问题。这将获取用户,这些用户位于用户数据库表中。
但是,当我尝试在searchbarfield中键入名称并单击SearchButton时,什么也没发生。我已经知道,它将刷新整个页面的第四位,然后执行按钮操作并刷新整个页面的第五位。
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
template="../../templates/default.xhtml">
<ui:define name="title">Any great stuff</ui:define>
<ui:define name="content">
<div class="row container">
<div class="small-12 columns">
<h1>Any great stuff</h1>
<div class="row">
<div class="small-12 large-12 columns">
<section class="class">
<div class="row">
<h:form>
<div class="small-4 columns">
<div class="row collapse">
<div class="small-8 columns">
<h:selectOneMenu id="actionDropdown" value="#{adminController.action}">
<f:selectItem id="actionItem0" itemValue="0" itemLabel="Choose"/>
<f:selectItem id="actionItem1" itemValue="1" itemLabel="Delete"/>
</h:selectOneMenu>
</div>
<div class="small-4 columns">
<h:commandButton value="Übernehmen" class="button postfix" action="#{adminController.actionUser}" />
</div>
</div>
</div>
<div class="small-4 columns">
<div class="row collapse">
<div class="small-8 columns">
<h:selectOneMenu id="roleDropbown" value="#{adminController.role}">
<f:selectItem id="roleItem0" itemValue="0" itemLabel="Choose item"/>
<f:selectItem id="roleItem1" itemValue="1" itemLabel="Item2"/>
<f:selectItem id="roleItem2" itemValue="2" itemLabel="Item3"/>
<f:selectItem id="roleItem3" itemValue="3" itemLabel="Item4"/>
<f:selectItem id="roleItem4" itemValue="4" itemLabel="Item5"/>
</h:selectOneMenu>
</div>
<div class="small-4 columns">
<h:commandButton value="Wechseln" class="button postfix" action="#{adminController.changeRole}" />
</div>
</div>
</div>
<div class="small-4 columns">
<div class="row collapse">
<div class="small-8 columns">
<input type="text" id="usersearch" value="#{adminController.searchvalue}" placeholder="Suchen..."/>
</div>
<div class="small-4 columns">
<h:commandButton id="usersearchButton" value="Suchen" class="button postfix" action="#{adminController.searchUser}">
<f:ajax execute="@form" render="@none" />
</h:commandButton>
</div>
</div>
</div>
</h:form>
</div>
<table>
<thead>
<tr>
<th width="5"><input onClick="selectAll(this)" type="checkbox"/></th>
<th></th>
<th>Number</th>
<th width="250">Name</th>
<th width="250">E-Mail</th>
<th width="150">Role</th>
</tr>
</thead>
<tbody>
<ui:repeat value="#{adminController.userList}" var="user">
<tr>
<td><input type="checkbox" name="user[]" value=""/></td>
<td><img src="#{user.picture}" alt="Picture"/></td>
<td>#{user.registerNumber}</td>
<td>#{user.name}</td>
<td><a href="mailto:#{user.email}">#{user.email}</a></td>
<td>#{user.role}</td>
</tr>
</ui:repeat>
</tbody>
</table>
</section>
</div>
</div>
</div>
</div>
<script src="../../js/script.js"></script>
</ui:define>
</ui:composition>
我的adminController.java使用
public List<User> getUserList()
填写表格值。这很好用,当我给searchvalue一个静态值时,它也将起作用。我必须在上面的xhtml中键入什么?(问题是,我对x / html及其标签一无所知,所以请多加注意。)有人告诉我,我必须使用Panelgroup,但是我不知道在哪里。(我已将itemvalues重命名,这是您不必担心的任何事情)
您的searchButton包含<f:ajax />标记。因此,当您单击按钮时,它不会提交页面。只是发送一个ajax请求。但render = @ none。这意味着不会更新表格。如果您这样更改render = @ form,它应该可以工作。
<div class="small-4 columns">
<div class="row collapse">
<div class="small-8 columns">
<h:inputText id="usersearch" value="#{adminController.searchvalue}" />
</div>
<div class="small-4 columns">
<h:commandButton id="usersearchButton" value="Suchen" styleClass="button postfix" action="#{adminController.searchUser}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</div>
</div>
</div>
更新:
使用<h:dataTable />而不是<ui:repeat />
<h:dataTable id="myDataTable" value="#{adminController.userList}" var="user">
<h:column>
<img src="#{user.picture}" alt="Picture"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Number"/>
</f:facet>
<h:outputText value="#{user.registerNumber}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:outputText value="#{user.name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Email"/>
</f:facet>
<h:outputLink value="mailto:#{user.email}">
<h:outputText value="#{user.email}"/>
</h:outputLink>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Role"/>
</f:facet>
<h:outputText value="#{user.role}"/>
</h:column>
</h:dataTable>
现在您只能更新表格。
<f:ajax execute="@form" render="myDataTable" />
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句