这是SiteBricks用户指南中的示例:
<html> <body> @ShowIf(true) <----- I'm impressed with this line <p>${message} from Sitebricks!</p> </body> </html>
我很好奇它是如何实现的?(我的意思是站点砖创建者如何以及在哪个切入点设法将jsp转换为servlet?)
感谢您的任何想法!
没有过滤器执行此操作。我们有自己的模板逻辑,使用的是递归下降解析器。
完成这种注释解析实际上不是一个简单的问题。我们首先要做的是使用Jsoup将整个HTML像DOM一样树化。Jsoup负责将HTML规范化为类似XML的结构(尽管不完全一样)。
然后,我们将这棵树下放,并构建一个并行的“渲染器”树作为Java对象。每个渲染器都有能力执行特定的操作,即吐出HTML,显示值是否为真等。鉴于渲染器树与HTML树匹配,如果ShowIf返回false,我们也将其下面的整个分支都删除。
在页面嵌入方面,还有一些更复杂的事情在进行,等等,但这就是要旨。感谢您的客气话!
Dhanji,Sitebricks和Guice Servlet的创建者。