jsp中整合修改标记规则技术分享
整合默认提供了一些常用的规则
可以看到其实可以选择
/** *提取任何看起来像*代码内容标记='foo '的元素的内容./内容/代码并将内容*写入一个页属性(page.foo).* *这是是一种廉价而愉悦的机制,用于在*页面中嵌入多个组件,可以在装饰者的不同地方使用/p * * @作者乔沃恩斯*/公共类内容块提取规则扩展了要导出的basicblockRuleString { private final content property }属性;public contentblockextracting规则(要导出的内容属性属性){ this。要导出的属性=要导出的属性;} @覆盖受保护的字符串进程启动(标记标记)引发IOException { tagprocessor context。pubuffer();返回标签。getattributevalue(' tag ',false);} @覆盖受保护的无效进程结束(标记标记,字符串标记标识)引发IOException { propertyteoxport。getchild(标记标识)。setValue(tagprocessorcontext。currentbuffercontents());标记处理器上下文。pop buffer();}}修改ScriptTagRuleBundle处理如下
公共类ScriptTagRuleBundle实现TagRuleBundle { @ Override public void install(State default State,ContentProperty,sitemasscontext sitemasscontext){ default State。addrule(' content '),新的content block extracting rule(content属性。getchild(' page '))));} @覆盖公共void cleanUp(State defaultState、ContentProperty、contentProperty、sitemasscontext){ } }用法很简单使用内容作为标签默认填上标签即可
比如
内容标记=' reference '脚本类型=' text/JavaScript ' src=' http :%=path %/plugins/select 2/js/select 2。量滴js/script脚本类型=' text/JavaScript ' src=' http :%=path %/plugins/select 2/js/i18n/zh-cn。js/script脚本类型=' text/JavaScript ' src=' http 3360%=path %/plugins/plugins在模板中这样
身体类=' mainBody ' sitemesh:write属性=' body '/sitemash : write属性=' page。引用'/正文这样就可以很简单的放入到任意位置!
弊端
这样虽然很简单但是也存在一些问题开发如果需要增加新的内容必须要要到母版页【对的其实整合不就像是ASP。网中的母版页么】
增加对应的sitemesh:write标签
要导出的属性。GetChild(TagID).setValue(tagprocessorcontext。currentbuffercontents());并且上述代码中同样存在覆盖的问题比如多处使用了同样的不更新
解决
整合似乎没有提供直接用来拼接多个的标记规则
如果有需求将某块元素放入到末尾可以考虑增加标记规则
在processEnd时直接将对应的元素直接附加
最终可以直接输出
以上就是我们给大家整理的本次教程的全部内容,感谢你对我们的支持。
版权声明:jsp中整合修改标记规则技术分享是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。