Sitemesh3中增加自定义tag
程序员文章站
2022-04-19 21:34:04
...
S3相比S2感觉舒服很多,用起来确实比传统的include方便,例如之前有个项目用了之后,切换布局什么的很省事,只需要调整一下框架页面就ok了,如果是include的话就费劲了。
不过S3预定义的只有几个head、body之类的tag,有时候还会希望能够增加一些自己扩展的tag,例如 sidebar、footer之类的。
一开始看源码后,增加了个filter的继承( http://www.oschina.net/question/553849_56620 ),后来发现其实有更简单的方式,官方其实已经考虑到这种扩展了,我们只需要实现个 bundle就ok了:
public class ExtHtmlTagRuleBundle implements TagRuleBundle {
@Override
public void install(State defaultState, ContentProperty contentProperty,
SiteMeshContext siteMeshContext) {
defaultState.addRule("myfooter", new ExportTagToContentRule(contentProperty.getChild("myfooter"), false));
}
@Override
public void cleanUp(State defaultState, ContentProperty contentProperty,
SiteMeshContext siteMeshContext) {
}
}
如果需要添加多个,install 方法里面那行语句多复制几次就ok了。
然后在sitemesh3.xml中配置一下:
<!-- 增加自定义标签,目前只提供了一个 myfooter -->
<content-processor>
<tag-rule-bundle class="com.someok.common.base.web.sitemesh3.ExtHtmlTagRuleBundle" />
</content-processor>
转载于:https://my.oschina.net/someok/blog/93913
上一篇: Android pm 命令解析
下一篇: 3200万自拍镜头加持 荣耀20i发布