Validation JSF/Richfaces重新呈现不调用验证

Validation JSF/Richfaces重新呈现不调用验证,validation,jsf,jsf-2,richfaces,Validation,Jsf,Jsf 2,Richfaces,我有一个JSF/Richfaces页面,其表单包含许多组件。 其中一些组件是必需的,因此required属性设置为true 我有一个commandButton(C1),它调用服务器操作。根据服务器操作的结果,填充类型为h:selectOneMenu(F1)的字段。此字段是必填字段,其值由用户手动选择或通过服务器操作填充 提交表单时,如果字段F1中没有值,则会出现此问题。验证自然会失败,并显示错误消息“value is required”(或requiredMessage属性的值)。如果用户随后执

我有一个JSF/Richfaces页面,其表单包含许多组件。 其中一些组件是必需的,因此required属性设置为true

我有一个commandButton(C1),它调用服务器操作。根据服务器操作的结果,填充类型为h:selectOneMenu(F1)的字段。此字段是必填字段,其值由用户手动选择或通过服务器操作填充

提交表单时,如果字段F1中没有值,则会出现此问题。验证自然会失败,并显示错误消息“value is required”(或requiredMessage属性的值)。如果用户随后执行服务器操作,则F1字段将填充返回值,并重新提交。但是,似乎没有在客户端执行验证,并且字段仍然显示为错误。即使用户在此之后手动选择值,该字段仍显示为无效。 我一直在网上搜索,但没有找到类似的案例

以下是我的页面的一些摘录:

<a:region>
    <s:decorate id="alField" template="#{template}">
    <ui:define name="label">Al</ui:define>
        <h:inputTextarea id="al" maxlength="75"   valueChangeListener="#{aEntHome.clearFields}" 
            requiredMessage="Required" required="true"  value="#{aEntHome.instance.al}" >
            <f:validator validatorId="stringNotEmtyTrimmedValidator" />
            <a:support event="onblur" reRender="F1Field"  bypassUpdates="true" />                   
        </h:inputTextarea>

    <a:commandButton value="Search" image="img.GIF" id="searchImg" 
        action="#{lSearch.search}" reRender="F1Field,alField">
    </a:commandButton>
</s:decorate>
</a:region>

<s:decorate id="F1Field" template="#{template}">
  <ui:define name="label">F1</ui:define>
  <h:selectOneMenu value="#{aEntHome.instance.f1}"    required="true"  >
    <s:selectItems value="#{listH.f1List}" var="_c" label="#{_c.f1Code}(#{_c.f1Name})"  />  
    <s:convertEntity />             
  </h:selectOneMenu>    
</s:decorate>

艾尔
一层楼
这是用于显示字段的模板:

<ui:composition  xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:s="http://jboss.com/products/seam/taglib">

    <div class="prop">

    <s:label styleClass="longName #{invalid?'errors':''}">
        <ui:insert name="label"/>
        <s:span styleClass="required" rendered="#{required}">*</s:span>
    </s:label>


    <span class="value #{invalid?'errors':''}">
        <s:validateAll>
            <ui:insert/>
        </s:validateAll>
    </span>

    <span class="error">
        <h:graphicImage value="/img/error.gif" rendered="#{invalid}" styleClass="errors"/>
        <s:message styleClass="errors"/>
    </span>
    </div>
</ui:composition>

*
有人能告诉我这段代码可能出了什么问题吗

我只是想澄清一下——我使用的是Richfaces 3.3.1


如果您能提供任何线索,我将不胜感激。

这些信息出现在哪里?如果它在重新渲染器之外,那么它们将留在那里。消息显示在字段旁边。下面是使用的模板:*我对格式设置表示歉意,但评论似乎有限制。如果您更新您的问题,会更好。我的问题是是否要重新命名?有趣的是,中的文本没有显示,但字段的外观保持不变(在我的例子中为红色)