1

WAS 6.0 +JSF1.1からWAS7.0+JSF1.2に移行した後のページレンダリングに問題があります。主な問題は次のコードにあります。

<h:messages rendered="#{!webData.facesMessagesEmpty}" styleClass="messages"
showSummary="true" showDetail="false" title="Messages" layout="table" id="eMessages"
infoClass="info_with_icon" warnClass="warn_with_icon" errorClass="error_with_icon"
fatalClass="fatal_with_icon" />

このコードは、WAS 6.0 + JSF 1.1では正しく機能しますが、WAS 7.0 +JSF1.2ではスタイルを使用しません。少し調べてみたところ、この問題はlayout="table"にのみ発生することがわかりました。layout = "list"を使用すると、スタイルは問題ありません。残念ながら、ここにテーブルが必要です(layout = "list"はインデントを作成するため、これを回避する方法はありません)。また、layout = "table"の場合に生成されるHTMLコードは、JSF1.1とJSF1.2では大きく異なることがわかりました。

だから私の質問-WAS7.0+ JSF 1.2の古いスタイル(JSF 1.1)のHTML生成を強制することは可能ですか?グーグルしようとしましたが、答えが見つかりません...

4

1 に答える 1

1

簡単に言えば、JSF 1.1 はinfoClassと コンソートを の<span>内側に<td>置きますが、JSF 1.2 は に置き<tr>ます。

<tr>要素でサポートされていない非常に具体的な CSS プロパティを使用しているようです。その場合、基本的に 2 つのオプションがあります。

  1. 代わりに CSS 宣言を変更して適用します<td>

    .info_with_icon_messages td {
        /* ... */
    }
    
  2. <h:messages>レイアウトを に変更しlist、生成された のクラスに次の CSS プロパティを追加<ul>します。あなたの場合.messagesは、箇条書きとインデントを削除します。

    .messages {
        list-style-type: none;
        margin: 0; 
        /* ... */
    }
    
于 2011-12-06T14:57:42.090 に答える