h:inputText在最新的JSF2.2中没有多种形式。 我有2个表格
form1有: 一个命令按钮和一个输入文本
form2有: 一个输入文本和一个输出标签
单击form1中的命令按钮,我正在渲染form2(输出标签和输入文本)。
但只有正确的值才能正确呈现输出标签(调用相应的getter方法并显示值),但输入文本没有调用相应的getter方法,因此显示为null。
注意: 我们注意到这个问题只有在我们使用多个表单时,在单个表单中才能正常工作。 它在JSF2.0中运行良好
使用的版本: JSF api - 2.2(com.sun.faces) JSF impl - 2.2(com.sun.faces)
让我知道是否有人有办法解决这个问题。
表单不是嵌套的,并且两个bean都在View范围内。
<h:form id="form1">
<a4j:commandLink id="actionEdit" title="Click" action="#{bean.action}"
render="paymentInstructionDetail" styleClass="iconLarge edit" />
</h:form>
<h:form id="form2">
<a4j:outputPanel ajaxRendered="true" id="paymentInstructionDetail">
<h:inputText value="#{bean1.amount}" id="sample"/>
<h:outputLabel value="#{bean1.amount}" id="sampleLabel"/>
</a4j:outputPanel>
</h:form>
在form1中完成操作后,form2 outputlabel正确显示值(调用getter方法)但输入文本没有显示值(getter方法未被调用)
嗨,约翰,为了测试上面的问题是否在没有richfaces的情况下工作正常,我创建了一个独立项目并创建了一个xhtml,如下所示
<h:body>
<h2>This is start.xhtml</h2>
<h:form>
<h:commandButton action="#{myBean.testAction}" value="Payment" >
<f:ajax render="sample"></f:ajax>
</h:commandButton>
</h:form>
<h:form id="test12" prependId="false">
<h:inputText value="#{myBean.orderQty}" id="sample"/>
</h:form>
</h:body>
但是我的样本名称不明,是否有办法检查多种表格?
答案 0 :(得分:0)
我不熟悉richfaces(a4j),但请尝试以下方法:
- 如果您不使用form prependId=false
,那么您应该将您的(其他形式)ID称为:render=":form2:paymentInstructionDetail" styleClass="iconLarge edit" />
另一方面说明: - 我认为richfaces还没有准备好JSF2.2,所以期待问题 - 实际上,JSF 2.2有很多自己的错误