默认情况下,在Jsf中使用注释,可能会出现注释部分也被渲染的问题。我曾写过一个xhtml页面,在该页面中注释了一个primeface的dialog,结果页面老是出问题,且被注释的dialog仍然被渲染,费了好大劲才发现原来是jsf的设置问题。Jsf中对注释的默认setting如下:
javax.faces.FACELETS_SKIP _COMMENTS | 2.0 | If true, strip XML comments out of Facelets before delivering to the client. | false |
facelets.SKIP_COMMENTS | 2.0 | If true, strip XML comments out of Facelets before delivering to the client. Used for backward-compatibility with legacy Facelets implementation. | false |
因此,我们为了确保comments生效,我们需要在项目的web.xml中,设置context-para,如下即可。
<context-param>
<param-name> facelets.SKIP_COMMENTS</param-name>
<param-value>true</param-value>
</context-param>
Comments生效与否应该说是个抛砖引玉,其实我更想说的是我们如果想要深入了解jsf的话,应该了解jsf的一些context-para。Jboss官网上详细列举了jsf的context-paras,网址:
http://docs.jboss.org/jbossas/6/JSF_Guide/en-US/html/jsf.reference.html。其中有些context-para我们需要重点关注下,比如:
javax.faces.VALIDATE_EMPTY_FIELDS,是否验证empty field
javax.faces.PROJECT_STAGE,项目阶段(Development, UnitTest, SystemTest,Production)
……