我正在尝试使用按钮更新bean的值,就像数据预加载机制一样,然后使用新值更新表单。我已经访问了很多关于此的问题,但这些解决方案在这里没有用。
form.xhtml示例代码
<p:outputLabel for="name" value="Your name" />
<p:inputText value="#{person.name}"
id="yourname">
</p:inputText>
还有其他类似的字段,要求用户填写它们以便用新数据填充辅助bean,而不是在加载页面时预加载的默认值。所有内容都分组在一个h:panelGrid容器中,其id =“grid”。一切都在h:form中。
有一个按钮以某种方式修改了支持bean属性并尝试重新加载表单,以便输入字段具有这些值。
<p:commandButton id="preload" value="Preload Example Data"
actionListener="#{controller.preload}">
</p:commandButton>
bean及其方法如下。
public class Controller implements Serializable {
private static final long serialVersionUID = 5754692548431690216L;
@ManagedProperty(value = "#{person}")
private Person person;
public void preload(ActionEvent event) {
this.person.setName(...);
(...)
System.out.print("[PRELOAD COMPLETED]"); // debug purposes
RequestContext.getCurrentInstance().update("grid");
}