【发布时间】:2012-02-24 22:53:46
【问题描述】:
我有一个页面,用户可以将文件上传到服务器。他可以设置哪些组/用户可以读/写(到)文件。
这是通过选择完成的。一个选择包含用户当前所在的组的名称,在同一行上是一个带有读取和写入选项的选择。第二行是选择用户对应的东西。
当用户选择一个组并为该组选择读或写时,他然后按下一个按钮。按下按钮后,我想向用户显示选择下方的权限列表。该列表将包含一个组名、该组的访问设置和一个删除权限项的按钮。
我的问题是,我无法更新页面并显示权限列表。服务器端权限被添加到 ArrayList,但我无法让内容显示在 a4j:repeat 中。如何让重复标签更新?
到目前为止,我一直在尝试这样做:
<h:form>
<h:selectOneMenu value="#{assetUploadForm.currentGroupName}" valueChangeListener="#{assetUploadForm.groupNameChanged}">
<f:selectItem itemValue="users" itemLabel="users" />
<f:selectItem itemValue="foobar" itemLabel="Foobar" />
<a4j:ajax event="valueChange" render="second" execute="@this" />
</h:selectOneMenu>
<h:selectOneMenu value="#{assetUploadForm.currentGroupRW}" valueChangeListener="#{assetUploadForm.groupRWChanged}">
<f:selectItem itemValue="R" itemLabel="Read"/>
<f:selectItem itemValue="W" itemLabel="Write"/>
<a4j:ajax event="valueChange" render="second" execute="@this" />
</h:selectOneMenu>
<a4j:commandButton action="#{assetUploadForm.addGroupRights}" value="add group" render="groupList"/>
<ul>
<a4j:repeat value="#{assetUploadForm.groupPermissions}" var="permission" id="groupList">
<li><h:outputText value="#{permission.permissionSetItemId}"/></li>
</a4j:repeat>
</ul>
</h:form>
所以,问题是 a4j:repeat 永远不会更新。如果我用输出文本替换重复,并将命令按钮设置为呈现它,则页面将“正确”更新。
【问题讨论】: