我想在向用户发送JSF页面之前更正缩进,因为缩进对JSF来说有点乱,并且使用更好的缩进更容易做css stylig。所以我想将JSF渲染所写的所有输出重定向到一个变量,解析它然后发送给用户。我试着玩一点,并认为听{RenderPhase}的<f:phaseListener>
可能是正确的方法,但我不知道如何具体地做到这一点。
答案 0 :(得分:3)
Filter
是这项工作的最佳工具。如果您对拦截JSF生命周期和/或JSF组件树感兴趣,那么PhaseListener
只会很有趣,而不是只对您生成的HTML响应感兴趣。存在JTidyFilter
,它完全符合您的要求。只需在web.xml
中定义一次,所有反复出现的HTML都会被美化。所有它基本上都是将response.getOutputStream()
包裹起来,先通过JTidy来运送它。