質問

6.0 + JSF 1.1から7.0 + JSF 1.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" />

このコードは正しく機能します。私は少し調査しましたが、この問題はレイアウト= "テーブル"のみであることがわかりました。 layout = "list"を使用する場合、スタイルは問題ありません。残念ながら、ここでテーブルが必要です(layout = "list"がインデントを作成するため、これをaviodする方法はありません)。また、JSF 1.1とJSF 1.2の場合、レイアウト= "テーブル"の場合に生成されたHTMLコードが生成されたことがわかりました。

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

役に立ちましたか?

解決

一言で言えば、JSF 1.1が配置されます infoClass およびaの配偶者 <span> 内側 <td>, 、しかし、JSF 1.2はそれを置きます <tr>.

でサポートされていない非常に特定のCSSプロパティを使用しているように見えます <tr> エレメント。その場合、あなたは基本的に2つのオプションです。

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

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

    .messages {
        list-style-type: none;
        margin: 0; 
        /* ... */
    }
    
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top