欢迎来到天天文库
浏览记录
ID:40387706
大小:971.21 KB
页数:19页
时间:2019-08-01
《标签库web国际化java web之设计模式和案例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、将小脚本,jsp的表达式全部替代,替代方法是通过标签库+EL自定义标签1自定义标签库像这样的代码,EL无法解决2自定义标签库的写法:---->完全符合jsp2.0推荐的规范标准(1)开发一个对应的java代码直接后间接实现SimpleTag(简单标签)Tag是传统标签,学习的是简单标签,一般直接使用它的子类SimpleTagSupport实现doTag()方法就可以了。(2)配置这个java类,使得它成为一个标签,都需要使用tld文件(3)用taglib指令引入(4)一种开发模式:jsp+Servlet+j
2、stl+EL+jdbc原始设计:更加安全案例分析使用结果驱动设计,希望实现的结果创建类ShowtimeTag通过选择继承的类查该类的文档方法:取到标签的主体内容PageContext是JspContext子类思路getJspContext()(2)新建xml文件mytag.tldshort-time:是指标签名,tag中的name是从以下路径中复制以下的内容(3)使用taglib引入标签执行原理6和5的步骤需要对调每次进行请求的时候都是从第四部开始依次往下走,在doTag()方法上填写构造方法输出进行测试。
3、需求新建SkipBodyDemo2的java类配置xmlempty是指没有主题内容scriptless:纯文本内容输出结果不能使用以上方法,应该改为以下方法实际工作中使用的方法:jf.invoke(null);使得标签后的内容都不显示出来,控制标签之后的内容不输出如何截断指定位置的内容控制标签后面的内容不输出publicvoiddoTag()throwsJspException,IOException{thrownewSkipPageException();}
4、pAfter>world输出重复主体内容新建java类RepeatBodyTagDemo4,继承simpleTagSupport类,重写doTag方法在执行过程中,在标签中如果有属性count,在执行的过程中就会调用setter的方法,即setCount()方法,给count属性赋值xml文件配置(有属性需要对属性进行配置)获取标签的主体内容,改变主体内容之后再输出新建类ChageBodyTagDemo5StringWriter自带有自己内部的缓冲区(从
5、原码中可以知道),输出的过程中,构建缓冲区,输出到这个缓冲区,然后进行相应的转换,并把结果真正输出到页面模拟jstlMyIfTagDemo1有属性需要定义其变量,并书写其set方法修改tag中的nametag-class自定义的标签的属性的输出结果可以使用EL表达式进行输出多重选择实现的效果:需要写三个类choose的作用是告知Boolean的get方法都改为了is类MyChoose一定要对以上的flag变量进行赋值类MyWhenTagDemo2类MyOtherWiseTagDemo2配置tld文件引入标签
6、库循环需求:引入标签库新建类MyForTagDemo3实现可以将数组,集合都可以取出来的方法publicclassMyForEachTagDemo4extendsSimpleTagSupport{privateObjectitems;privateStringvar;//相当妙呀privateCollectioncollection=newArrayList();publicvoidsetItems(Objectitems){if(itemsinstanceofSet){collection=(Set)it
7、ems;}elseif(itemsinstanceofMap){collection=((Map)items).entrySet();}elseif(items.getClass().isArray()){intlength=Array.getLength(items);for(inti=0;i8、hrownewRuntimeException("你有病!类型不支持");}}publicvoidsetVar(Stringvar){this.var=var;}publicvoiddoTag()throwsJspException,IOException{PageContextpc=(PageContext)getJspContext();for(Objectobj:collection){pc.setAttr
8、hrownewRuntimeException("你有病!类型不支持");}}publicvoidsetVar(Stringvar){this.var=var;}publicvoiddoTag()throwsJspException,IOException{PageContextpc=(PageContext)getJspContext();for(Objectobj:collection){pc.setAttr
此文档下载收益归作者所有