【问题标题】:JSF 2 Mojarra -- Required attribute not being honored after f:ajax renderJSF 2 Mojarra——在 f:ajax 渲染后不支持必需的属性
【发布时间】:2011-08-18 14:48:43
【问题描述】:

考虑这个简单的例子。如果我有这样的表单,我显然会在 inputText 中没有值的情况下提交验证错误:

<h:form id="testForm" prependId="false">

    <h:selectOneMenu 
        id="testSelectOneMenu" 
        value="#{backButtonTestBean.selection}">
        <f:selectItem itemValue="mickey" itemLabel="Mickey" />    
        <f:selectItem itemValue="mouse" itemLabel="Mouse" />
        <f:ajax execute="@this" render="panel" />
    </h:selectOneMenu>                 

       <h:panelGroup layout="block" id="panel">
           <h:panelGroup layout="block">
               <h:inputText id="requiredField" required="true" />
           </h:panelGroup>    
       </h:panelGroup>

       <h:commandButton value="submit" action="#{backButtonTestBean.submit}" />

</h:form>

但是当我使用 f:ajax 重新渲染 panelGroup 时,所需的属性没有被兑现,我可以使用空值提交:

<h:form id="testForm" prependId="false">

    <h:selectOneMenu 
        id="testSelectOneMenu" 
        value="#{backButtonTestBean.selection}">
        <f:selectItem itemValue="mickey" itemLabel="Mickey" />    
        <f:selectItem itemValue="mouse" itemLabel="Mouse" />
        <f:ajax execute="@this" render="panel" />
    </h:selectOneMenu>                 

       <h:panelGroup layout="block" id="panel">
           <h:panelGroup layout="block" rendered="#{backButtonTestBean.selection == 'mouse'}">
               <h:inputText id="requiredField" required="true" />
           </h:panelGroup>    
       </h:panelGroup>

       <h:commandButton value="submit" action="#{backButtonTestBean.submit}" />

</h:form>

我正在 mojarra 2.1.1 中进行测试。任何建议表示赞赏。

【问题讨论】:

  • 带有“w/”的意思是说“with”吗?我很难理解这个问题。
  • 是的。这是聊天的一个坏习惯,而不是这个网站。我将停止使用它并相应地编辑这篇文章。
  • 对于您不知道的情况,如果您自己找到了解决方案,那么您就有资格将其发布为您自己的答案。
  • 我没有意识到这一点。这样做是否被认为是好的形式?

标签: ajax jsf jsf-2 render required


【解决方案1】:

更新:我想通了。 BackButtonTestBean 在请求范围内,因此当我提交表单时 testSelectOneMenu 的值不是“鼠标”。因此它没有被渲染,因此验证器是无效的。更改为 @ViewScoped 并按预期工作。

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2011-05-07
    • 2017-04-12
    相关资源
    最近更新 更多