h:inputtext不能在JSF2.2中使用多个表单

时间:2013-07-02 11:23:48

标签: jsf-2.2

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>   

但是我的样本名称不明,是否有办法检查多种表格?

1 个答案:

答案 0 :(得分:0)

我不熟悉richfaces(a4j),但请尝试以下方法:

- 如果您不使用form prependId=false,那么您应该将您的(其他形式)ID称为:render=":form2:paymentInstructionDetail" styleClass="iconLarge edit" />

另一方面说明: - 我认为richfaces还没有准备好JSF2.2,所以期待问题 - 实际上,JSF 2.2有很多自己的错误