我的 JSF 页面使用 PrimeFaces 组件有问题。由于它可能会很快变得冗长而乏味,因此我尽量简短。考虑这个托管 bean:
@Named(value = "testBean")
@RequestScoped
public class TestBean implements Serializable {
private String test;
public String update() {
test = "Updated.";
return "test";
}
// Getters and Setters...
}
这是 的正文test.xhtml
,删除了不相关的内容和样式:
<h:body>
<p:layout id="layout" fullPage="true">
<p:layoutUnit position="north">
<!-- Does not matter -->
</p:layoutUnit>
<p:layoutUnit id="input" position="west">
<p:panel header="">
<p:tabView>
<p:tab title="">
<!-- INPUTS and SUBMIT BUTTON -->
</p:tab>
</p:tabView>
</p:panel>
</p:layoutUnit>
<p:layoutUnit id="output" position="center">
<h:form>
<p:panel id="display" header="Information">
<h:outputText value="#{testBean.test}" />
</p:panel>
<p:separator />
<p:commandButton value="Update !" action="#{testBean.update()}" ajax="false" />
</h:form>
</p:layoutUnit>
<p:layoutUnit position="south">
<!-- Does not matter -->
</p:layoutUnit>
</p:layout>
</h:body>
一切正常。我有两个问题:
我应该将 移动
commandButton
到另一个layoutUnit
(输入)并且我无法将<h:form>
元素放置在合理的位置。我尝试将它移到旁边<p:layout>
,使其包含所有布局单元,但它损坏了(更新的页面不再具有“更新。”字符串)。我想使用另一个 layoutUnit 上的按钮通过 ajax 执行更新。当我
ajax="false"
从全局表单元素中删除属性commandButton
并设置属性时prependId="false"
,输出文本不会更新。
在此先感谢您的帮助