使用有条件地渲染

我正在使用jstl进行小型测试。 并且它不起作用它应该如何工作

这是小代码:

 ${id} //printing 4  0}">  //is not rendered    //is not rendered  

我不知道出了什么问题。 在显示器中我只看到4,没有别的。

JSTL标记和JSF UI组件不会像编码所期望的那样同步运行。 长话短说: JSF2 Facelets中的JSTL ……有意义吗? 仔细阅读。

在您的特定情况下,JSTL 标记条件似乎取决于JSF 标记的结果。 在运行时,在视图构建期间, 尚未运行,因为它在预渲染视图事件期间运行。 因此#{mBlog.blog.id}始终为null或任何其他默认值。

您需要使用JSF组件的rendered属性。 它还可以使您的代码更清晰。

   

但是,在调用操作时,您可能会遇到另一个潜在的未来问题。 确保将bean放在视图范围中,而不是放在请求范围中。