Jsf 根据faces消息的存在情况有条件地渲染

Jsf 根据faces消息的存在情况有条件地渲染,jsf,primefaces,message,jsf-2.2,conditional-rendering,Jsf,Primefaces,Message,Jsf 2.2,Conditional Rendering,我的表中有一个特殊的错误行: <tr> <td colspan="2"><p:message for="questionId" id="msgQuestion" /></td> </tr> 如何设置该行,使其仅在出现错误时显示?首先,我建议 在此之后,即使消息不存在,ELLENT也会发出警报,如果您必须使用它,您可以在JS中使用som思考如下: <script type="text/javascript">

我的表中有一个特殊的错误行:

<tr>
    <td colspan="2"><p:message for="questionId" id="msgQuestion" /></td>
</tr>


如何设置该行,使其仅在出现错误时显示?

首先,我建议

在此之后,即使消息不存在,ELLENT也会发出警报,如果您必须使用它,您可以在JS中使用som思考如下:

 <script type="text/javascript">
    window.onload = function() {
  hideTdMessage();
};
hideTdMessage(){
var message = document.getElementById(msgQuestion);
if(message){
   //the msg is present
}else{
   //the msg is not present 
}}
</script>

window.onload=函数(){
hideTdMessage();
};
hideTdMessage(){
var message=document.getElementById(msgQuestion);
如果(信息){
//味精是存在的
}否则{
//味精不存在
}}
或者您可以使用MBean来更改CSS类,这比使用JS要好

但我要说的是,最好的解决办法不是使用tabel


希望它对我有帮助,首先我会推荐它

在此之后,即使消息不存在,ELLENT也会发出警报,如果您必须使用它,您可以在JS中使用som思考如下:

 <script type="text/javascript">
    window.onload = function() {
  hideTdMessage();
};
hideTdMessage(){
var message = document.getElementById(msgQuestion);
if(message){
   //the msg is present
}else{
   //the msg is not present 
}}
</script>

window.onload=函数(){
hideTdMessage();
};
hideTdMessage(){
var message=document.getElementById(msgQuestion);
如果(信息){
//味精是存在的
}否则{
//味精不存在
}}
或者您可以使用MBean来更改CSS类,这比使用JS要好

但我要说的是,最好的解决办法不是使用tabel


希望它能帮助

使用JSF组件和呈现的属性

rendered="#{not empty facesContext.messageList}"

使用JSF组件和呈现的属性

rendered="#{not empty facesContext.messageList}"

这是一个普通的HTML表吗?因此,它既不是标准的JSF组件(如
)也不是PrimeFaces组件(如
)?如果表中的行是静态的(因此,
没有包装在
和/或
迭代组件中),然后,可以使用类似于
的组件并在其中有条件地呈现
来实现同样的效果。我可以在tr标记周围使用一个panelGroup,但我不知道呈现它的条件。例如。我如何判断p:消息是否显示错误?我曾经做过类似的事情。这是一个普通的HTML表吗?因此,如果表中的行是静态的,它既不是标准JSF组件(如
),也不是PrimeFaces组件(如
)(因此,
没有包装在
和/或
迭代组件中),然后使用类似
的组件并在其中有条件地呈现
也可以实现同样的效果。我可以在tr标记周围使用一个panelGroup,但我不知道呈现它的条件。例如,我如何判断p:消息是否显示错误?我曾经做过类似的事情,如所述。