0

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 方法)但 inputtext 未显示值(未调用 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>   

但是我得到了未知的样本ID,有什么方法可以检查多种表格吗?

4

1 回答 1

0

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

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

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

于 2013-07-03T15:56:38.770 回答