Openfaces验证脚本未包含在页面中

时间:2016-03-04 17:05:24

标签: richfaces jsf-2.2 openfaces

使用的库: javax.faces-2.2.9,richfaces-rich-4.5.4,openfaces 3.0

服务器环境: JBoss EAP 6.4.2

我的xhtml页面仅使用 openfaces xmlns:o="http://openfaces.org/")进行验证。请参见下面的典型示例:

<h:inputText value="#{secItem.itemName}"
    rendered="#{secItem.sectionItemType.customizable and false}"
    title="Enter the name, max allowed 1024 characters"
    maxlength="1024" id="secItemNameID"
    disabled="#{portalConfig.savedParams.readOnly or
              portalConfBB.portalSecConfig.sectionType.readOnly}">
    <o:validateCustom clientFunction="return !isEmpty(value)"
            detail="Column name cannot be empty" />
    <o:floatingIconMessage for="secItemNameID"
            styleClass="errFloatIconMessage" />
</h:inputText>

问题是:<o: ..>标记对应的java脚本变得不一致。访问第一次页面,页面中包含验证脚本(使用视图源验证),但是在点击其他页面后,当我回来时,不包括openfaces库相关脚本。行为不一致。有时回到页面时脚本可用。然而,一旦他们无法加载,我没有看到他们再次回来。

下面是验证脚本渲染时的示例。请参阅下面以<script ..>开头的部分。当用户移出所需字段时,字段旁边会显示错误图标,字段的背景颜色会发生变化:

<td id="psForm:j_idt154:6:j_idt183" class="rf-dt-c">
   <img src="/expert3jsf2/image/requiredfield.gif" style="border:0;" title="Required Field" />
   <input id="psForm:j_idt154:6:secItemLabelId" type="text" name="psForm:j_idt154:6:secItemLabelId" value="Announcements" maxlength="20" size="50" title="Enter the label, max allowed 20 characters" />
      <script type="text/javascript">
        O$.addClientMessageRenderer(new O$._FloatingIconMessageRenderer('dfm20', 'psForm:j_idt154:6:secItemLabelId', '/expert3jsf2/javax.faces.resource/validation/error_icon.gif.jsf?ln=openfaces', -4, -4, 'o_floatingIconMessage', {}, false, false, true, true));
       </script>
       <script type="text/javascript">
             O$.addValidatorsById('psForm:j_idt154:6:secItemLabelId',[
    new O$._CustomValidator('Validation Error', 'Item label cannot be empty', function(input,value){return !isEmpty(value)})]);
       </script>
.....

无论何时包含上述脚本,验证都会按预期工作。每当脚本无法呈现时,验证都不起作用。

openfaces库脚本被渲染并且不呈现不一致的原因是什么?

0 个答案:

没有答案