Facelets页面是作为JSP生成的Servlet生成的Servlet

Fai*_*sra 7 jsf compilation facelets

由于所有JSP在执行之前都会生成/转换为Servlet,对于Facelets来说也是如此吗?

我正在使用JSF 2.0和Facelets,并希望看到它生成的Java代码可能是Servlet.

Bal*_*usC 13

不,使用SAX解析器将Facelets文件解析为XML树.XML树存储在Facelet缓存中.XML树在视图构建时变成了一个UIComponent可以访问的树FacesContext#getViewRoot()(您可以getChildren()在运行时遍历).组件树通常由自己生成的HTML代码encodeXxx()的方法或在相关联的那些Renderer,从UIViewRoot#encodeAll().

Facelets文件不会生成任何类文件.默认情况下,XML树存储在服务器的内存中.但是,从JSF 2.1开始,您可以指定一个自定义FaceletCache实现<facelet-cache-factory>,faces-config.xml其中您可以编写代码来存储XML树,例如磁盘文件系统(尽管速度会慢一些).

如果<ui:debug>在视图中使用并打开它,则可以看到后面组件树的文本表示UIViewRoot.另请参见如何调试JSF/EL

也可以看看:


Boz*_*zho 1

不完全一样,它被缓存。但它不会生成 servlet 代码。


归档时间:

查看次数:

1150 次

最近记录:

9 年,10 月 前