从 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?我试着用谷歌搜索但找不到答案...
最佳答案
简而言之,JSF 1.1 将把 infoClass
和配偶 <span>
在<td>
里面, 但 JSF 1.2 会将其放在 <tr>
上.
看起来您正在使用非常具体的 CSS 属性,<tr>
不支持这些属性元素。在这种情况下,您基本上有 2 个选择:
更改 CSS 声明以将其应用于
<td>
相反。.info_with_icon_messages td { /* ... */ }
更改
<h:messages>
布局为list
并在生成的类上添加以下 CSS 属性<ul>
,在你的情况下.messages
, 删除元素符号和缩进:.messages { list-style-type: none; margin: 0; /* ... */ }
关于css - h :messages after migration from JSF 1. 1 到 JSF 1.2 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8400296/