【发布时间】:2013-07-27 18:17:28
【问题描述】:
我是 JSF 初学者。我有一个关于托管 bean 的问题。
步骤 0:
有一个托管bean BeanA,作用域是request。而BeanA instance1.propertyA = "0";
第 1 步:
使用ajax改变国家,然后在BeanA.countryChanged方法中,改变托管bean BeanA.propertyA = "A"。
<t:selectOneMenu id="Country" required="true" valueChangeListener="#{BeanA.countryChanged}">
<a4j:support event="onchange" limitToList="true" ajaxSingle="true" />
<f:selectItems value="#{BeanA.countries}" />
</t:selectOneMenu>
第二步:
提交表单以验证文本输入
<h:inputText id="street" required="#{BeanA.propertyA == "A"}"
我希望在步骤 2 中 BeanA instance2 的值 propertyA 在 JSF 验证阶段应该是“A”,但实际上它是“0”。我不知道 JSF 如何加载 BeanA 实例属性值来创建新的 BeanA 实例。我该怎么办,值将变为“A”?谢谢,
【问题讨论】:
-
您使用的是 JSF 1.x 还是 2.x?答案取决于此。在未来的问题中,请始终提及使用的确切 JSF impl/version。我猜 1.x 显然已经使用了 RichFaces 3.x(
<a4j:support>不再存在于 RichFaces 4.x 中,4.x 仅是 JSF 2.x),所以 @987654324 @将是答案。但如果是 2.x,@ViewScoped就是答案。 -
我正在使用 JSF 1.X。谢谢,
-
@BalusC,感谢您的快速回复。提交表单时如何同步托管bean的属性状态?