从WAS 6.0 + JSF 1.1迁移到WAS 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" />
此代码在WAS 6.0 + JSF 1.1下正常工作,但在WAS 7.0 + JSF 1.2下不使用样式。我做了一点调查,发现这个问题仅适用于layout =“table”。如果我使用layout =“list”,那么样式就可以了。不幸的是我需要这里的表(因为layout =“list”创建缩进,我不知道如何避免这种情况)。另外我发现在layout =“table”的情况下生成的HTML代码对于JSF 1.1和JSF 1.2来说是非常不同的。
所以我的问题 - 是否有可能为WAS 7.0 + JSF 1.2强制旧式(JSF 1.1)HTML生成?我试着谷歌但却找不到答案...
答案 0 :(得分:1)
简而言之,JSF 1.1会将infoClass
和consorts放在<span>
内<td>
,但JSF 1.2会将其放在<tr>
上。
看起来你正在使用<tr>
元素不支持的非常具体的CSS属性。在这种情况下,你基本上有两个选择:
更改CSS声明,将其应用于<td>
。
.info_with_icon_messages td {
/* ... */
}
将<h:messages>
布局更改为list
,并在生成的<ul>
的类中添加以下CSS属性(在您的案例.messages
中)删除子弹和缩进:
.messages {
list-style-type: none;
margin: 0;
/* ... */
}