day自定义标签jstl标签库web国际化java web之设计模式和案例

day自定义标签jstl标签库web国际化java web之设计模式和案例

ID:17433635

大小:22.19 KB

页数:13页

时间:2018-08-31

day自定义标签jstl标签库web国际化java web之设计模式和案例_第1页
day自定义标签jstl标签库web国际化java web之设计模式和案例_第2页
day自定义标签jstl标签库web国际化java web之设计模式和案例_第3页
day自定义标签jstl标签库web国际化java web之设计模式和案例_第4页
day自定义标签jstl标签库web国际化java web之设计模式和案例_第5页
资源描述:

《day自定义标签jstl标签库web国际化java web之设计模式和案例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DAY11自定义标签JSTL标签库WEB国际化JAVAWEB之设计模式和案例将小脚本,jsp的表达式全部替代,替代方法是通过标签库+EL自定义标签1自定义标签库像这样的代码,EL无法解决2自定义标签库的写法:---->完全符合jsp2.0推荐的规范标准(1)开发一个对应的java代码直接后间接实现SimpleTag(简单标签)Tag是传统标签,学习的是简单标签,一般直接使用它的子类SimpleTagSupport实现doTag()方法就可以了。(2)配置这个java类,使得它成为一个标签,都

2、需要使用tld文件(3)用taglib指令引入(4)一种开发模式:jsp+Servlet+jstl+EL+jdbc原始设计:更加安全案例分析使用结果驱动设计,希望实现的结果创建类ShowtimeTag通过查该类的文档选择继承的类方法:取到标签的主体内容PageContext是JspContext子类思路getJspContext()(2)新建xml文件mytag.tldshort-time:是指标签名,tag中的name是从以下路径中复制以下的内容(3)使用taglib引入标签执行原理6和5的步骤

3、需要对调每次进行请求的时候都是从第四部开始依次往下走,在doTag()方法上填写构造方法输出进行测试。需求新建SkipBodyDemo2的java类配置xmlempty是指没有主题内容scriptless:纯文本内容输出结果不能使用以上方法,应该改为以下方法实际工作中使用的方法:jf.invoke(null);使得标签后的内容都不显示出来,控制标签之后的内容不输出如何截断指定位置的内容控制标签后面的内容不输出publicvoiddoTag()throwsJspException,IOExcepti

4、on{thrownewSkipPageException();}<body>hello,<itheima:skipAfter></itheima:skipAfter>world</body>输出重复主体内容新建java类RepeatBodyTagDemo4,继承simpleTagSupport类,重写doTag方法在执行过程中,在标签中如果有属性count,在执行的过程中就会调用setter的方法,即setCount()方法,给count属性赋值xm

5、l文件配置(有属性需要对属性进行配置)获取标签的主体内容,改变主体内容之后再输出新建类ChageBodyTagDemo5StringWriter自带有自己内部的缓冲区(从原码中可以知道),输出的过程中,构建缓冲区,输出到这个缓冲区,然后进行相应的转换,并把结果真正输出到页面模拟jstlMyIfTagDemo1有属性需要定义其变量,并书写其set方法修改tag中的nametag-class自定义的标签的属性的输出结果可以使用EL表达式进行输出多重选择实现的效果:需要写三个类choose的作用是告知B

6、oolean的get方法都改为了is类MyChoose一定要对以上的flag变量进行赋值类MyWhenTagDemo2类MyOtherWiseTagDemo2配置tld文件引入标签库循环需求:引入标签库新建类MyForTagDemo3实现可以将数组,集合都可以取出来的方法publicclassMyForEachTagDemo4extendsSimpleTagSupport{privateObjectitems;privateStringvar;//相当妙呀privateCollectioncoll

7、ection=newArrayList();publicvoidsetItems(Objectitems){if(itemsinstanceofSet){collection=(Set)items;}elseif(itemsinstanceofMap){collection=((Map)items).entrySet();}elseif(items.getClass().isArray()){intlength=Array.getLength(items);for(inti=0;i<leng

8、th;i++){collection.add(Array.get(items,i));}}elseif(itemsinstanceofList){collection=(List)items;}else{thrownewRuntimeException("你有病!类型不支持");}}publicvoidsetVar(Stringvar){this.var=var;}publicvoiddoTag()throwsJspException,IOException{PageContext

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。