0

使用ライブラリ: 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 ライブラリ スクリプトが一貫してレンダリングされず、レンダリングされない理由は何ですか?

4

0 に答える 0