版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。Struts标签from,bean,logicstruts1标签库1、HTML标签库该标签库可以和标准的HTML标记完成相同的功能,主要分为以下几类:1)用于生成基本的HTML的标签a)用于在页面的开头生成HTML的元素,该标签有一个属性lang来显示用户显示的语言。例如:如果用户的浏览器使用中文,那么该代码在运行时被解析为b)用于在页面的部分生成元素,用于生成当前页面的绝对URL路径。例如:那么使用该base的页面已经将URL定位到应用程序jsp的根目录下面,要从该页面再去访问其它资源,只要使用相对路
2、径即可。c)用于生成HTML的元素,包括以下的属性:forward:指定全局的转发链接,对应于Struts配置文件中的元素href:指定完整的URL链接page:指定相对于当前应用的URL例如:c1)LinktoGlobalActionForwardindex对应于struts-config.xml中:全局:上述标签会自动生成HTML代码:LinktoGlobalActionForwardc2)Generateanhreflink生成的HTML代码如下:Generateanhreflinkc3)Arelativelink生成的HTML代码如下:Generateanhreflink使用该标签的优
3、点:b1)应许再URL中以多种方式包含请求参数b2)在当前浏览器关闭Cookie时,会自动重写URL,把jsessionid作为请求参数包含在URL中,用于跟踪用户的状态(除了href属性)。d)用于在HTML中嵌入图片例如:d1)生成HTML代码如下:d2)生成HTML代码如下:2)用于生成HTML表单的标签a)生成HTML元素例如:生成的HTML代码如下:对应于struts-config.xml中部分代码:b)生成HTML元素例如:property属性指定的字段和ActionForm中的属性匹配生成HTML代码如下:c)生成HTML元素例如:生成HTML代码如下:d)生成HTML元素例如:
4、提交生成HTML代码如下:e)在表单上生成取消按钮例如:Cancel生成HTML代码如下:注意:在Action类中,应该以编程的方式来处理取消事件。f)生成HTML元素例如:重置生成HTML代码如下:g)生成HTML元素h)在表单上生成复选框元素i)生成HTML元素j)生成HTML元素k)生成HTML元素l)生成一组HTML元素m)生成一组HTML元素n)实现将本地文件上传到服务器端使用注意:n1)必须嵌套在中n2)标签的method属性必须为POSTn3)标签的编码类型enctype必须设置为multipart/form-datan4)标签必须设置property属性,这个属性和Action
5、Form中FormFile类型的属性对应。在ActionForm中必须配置:privateFormFilefile;publicFormFilegetFile()returnfile;publicvoidsetFile(FormFilefile)this.file=file;在Action中的处理:FormFilefile=registerForm.getFile();/获得上传文件的名字Stringfname=file.getFileName();/从file中获得输入流InputStreamis=file.getInputStream();/构造一个输出流,并指定上传文件在服务器端存放路径
6、OutputStreamos=newFileOutputStream(dir+/+fname);/从is中读取字节流后写入到os中注意:上述标签要使用在标签中,但是在标签中也可以使用标准的html标记(如:等)。3)显示错误或者正常消息的标签a)该标签在request和session范围内查找ActionMessages或者子类ActionErrors的对象,再从中读取ActionMessage对象,把ActionMessage对象中封装的的错误消息显示在页面上。该标签处理类获取ActionMessages对象的代码如下:ActionMessageserrors=TagUtils.getIns
7、tance().getActionMessages(pageContext,name);参数name指定ActionMessages对象存放在request和session范围中的key,默认值为Globals.ERROR_KEY。在ActionForm和Action中都可以生成ActionMessages对象,在ActionForm中的validate()验证方法返回ActionErrors对象,Struts的控制组件RequestProcessor把ActionErrors对象存放在request范围内,存放时的key为Globals.ERROR_KEY(如:request.setAttr
8、ibute(Globals.ERROR_KEY,errors)。标签中包括的属性:name:指定ActionMessages对象存放在request或者session范围中的key,默认值为Globals.ERROR_KEY。property:指定显示消息的属性,若没有设置,将显示ActionMessages对象中所有的ActionMessage。bundle:指定资源配置文件,如果没有设置此项,将从Web应用默认的资源配置文件中获得消息。语法:errors.add(消息属性,消息);如:errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMes
9、sage(error.error1);errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage(error.error2);saveErrors(request,errors);注意:同一个消息属性可以对应多条消息使用的三种方法:a1)显示全局消息全局消息指的是不和特定表单字段关联的消息,消息属性为ActionMessages.GLOBAL_MESSAGE。设置方式:errors.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage(error.global);ActionMessages
10、.GLOBAL_MESSAGE是一个常量,它的值为org.apache.struts.action.GLOBAL_MESSAGE,代表全局消息。在页面中显示该消息的方式:2)显示所有的消息如果在标签中没有设置property属性,将显示ActionMessages对象中所有的消息。页面中显示消息方式:指定了特定的资源配置文件,在struts-config.xml文件中配置为:3)显示和特定表单字段关联的消息errros.add(name,newActionMessage();页面中显示消息方式:b)和相似,也在页面上来显示消息,使用例子:该标签包括以下属性:name:指定ActionMessa
11、ges对象存放在request或者session中的key。标签处理类将根据这一属性key来检索request或者session范围的ActionMessages对象。message:指定消息的来源。如果为true,则从request或者session范围内检索出属性key为Globals.MESSAGE_KEY的ActionMessages对象,此时属性name无效;如果为false,则根据属性name来检索ActionMessages对象,如果此时没有设置name属性,将采用默认值Globals.ERROR_KEY。message属性的默认值为false。id:用来命名从消息集合中检索出的
12、每个ActionMessage对象,它和标签的name属性匹配。在上述例子中,标签的处理类每次从消息集合中取出一个ActionMessage对象,并通过id把它命名为message,标签接着把这个名为message的ActionMessage对象的消息输出到页面上。ActionMessagesmessages=newActionMessages();messages.add(ActionMessages.GLOBAL_MESSAGE,newActionMessage(error.error1);saveMessages(request,messages);protectedvoidsaveMe
13、ssages(HttpServletRequestrequest,ActionMessagesmessages).request.setAttribute(Globals.MESSAGE_KEY,messages);2、Bean标签库Bean标签库中标签可以访问已经存在的JavaBean以及它们的属性,还可以定义新的Bean,把它存放在用户指定的任何范围内,供网页或者其它元素访问,Bean标签库分为以下三类:1)用于访问HTTP请求信息或者JSP隐含对象的Bean标签a)用于检索发送到服务器端的Cookie,包括以下属性:id:定义一个Cookie类型的变量,这个变量又是作为将信息存放在pag
14、e范围内的:指定Cookie的名字value:指定Cookie的默认值,如果name指定的Cookie不存在,就使用value指定的属性值。例如:先检索名为cookieName的Cookie是否存在,如果存在,就把它的值赋给cookie变量的value值,如果不存在,cookie变量的值就采用默认值defaultValue。b)用于检索HTTP请求中的Header信息,包括以下属性:id:定义一个存放信息的字符串变量,这个变量又是作为将信息存放在page范围内的:指定要检索的Header中的字段名字例如:等于Stringvalue=(HttpServletReq
15、uest)request.getHeader(Accept-Language);Stringlang=value;pageContext.setAttribute(lang,value);c)用于检索HTTP的请求参数,包括以下属性:id:定义一个存放信息的字符串变量,这个变量又是作为将信息存放在page范围内的:指定请求的参数名value:指定请求参数的默认值例如1:等于Stringtemp=request.getParameter(testarg);if(temp!=null)Stringarg1=temp;pageContext.setAttribute(arg1,tem
16、p);elseStringarg1=noarg;pageContext.setAttribute(arg1,noarg);例如2:arg2是一个存放所有request请求中参数值的字符串数组。输出所有的参数值:%for(inti=0;iarg2.length;i+)out.write(arg2i+);%d)用于检索JSP隐含对象(如request、session、response)包括以下属性:id:定义一个引用隐含对象的变量,这个变量又是作为将信息存放在page范围中的perty:指定隐含对象的名字,可选值包括application、config、request、respons
17、e和session。例如:表示定义了一个this_session变量,它引用JSP中的session隐含对象,接着输出该变量中属性createTime的值(其实是session中属性createTime的值)。2)用于访问Web应用资源的Bean标签a)用于输出资源配置文件中的一条信息,标签的bundle属性指定资源配置文件,它和Struts配置文件中的元素的key属性匹配。如果没有设置bundle属性,就采用默认的资源配置文件。Struts配置文件中配置了两个资源配置文件:第一个资源配置文件没有指定key属性,因此是默认的资源配置文件,它的资源文件为ApplicationRperties。第
18、二个资源配置文件指定key属性为special,它的资源文件为SpecialRperties。内容:hello=Hello,ereryone!标签三种使用方式:a1)bundle-中的keykey-SpecialRperties中的hello注意:如果中设置了属性bundle,那么中一定要设置属性key,否则运行时会报错的。a2)标签中的属性name指定一个scope中的key,value为资源配置文件中的key。例如:hello-SpecialRperties中的helloa3)同时指定标签的name和property,name指定一个JavaBean,property指定JavaBean中
19、的一个get方法,get方法的返回值就是资源配置文件中的key。例如:bundle-中的keyname-request中的key(someBean)property-bean的getName()getName()返回值(hello)-资源配置文件中key(hello)b)用于检索Web资源的内容,包括以下属性:id:定义一个代表Web资源的变量name:指定Web资源的路径input:如果没有设置input属性,则id属性定义的变量为字符串类型;如果给input设置了值(可以是任意字符串),则id属性定义的变量为InputStream类型。例如:resource变量代表/testpage1.j
20、sp资源,由于没有设置input属性,因此resource变量为字符串类型,它的值为testpage1.jsp的源文件内容。c)用于检索Struts框架内在的对象,如ActionFormBean、ActionForward和ActionMapping。包括以下属性:id:定义一个page范围内的变量,用来引用Struts框架内的对象。formbean:指定ActionFormBean对象,和Struts配置文件中的元素匹配。forward:指定ActionForward对象,和Struts配置文件中的元素的子元素匹配。mapping:指定ActionMapping对象,和Struts配置文件中
21、的元素匹配。注意:属性id必须和下面三个属性中的一个匹配例如:以上代码的用属性id定义了一个forward变量,它引用一个名为BeanResources的ActionForward对象,在Struts文件中,与之匹配的元素为:.标签输出ActionForward对象的path属性值d)和标准的JSP标签很相似,都可以用来包含其他Web资源的内容,区别在于标签把其它Web资源的内容存放在一个变量中,而不是直接显示在页面上。包括以下属性:id:定义一个代表其它Web资源的位置forward:指定全局转发的路径,和Struts配置文件中的元素中的子元素匹配。page:指定相对于当前应用的URL,以/
22、开头。href:指定完整的URL例如:3)用于定义或者输出JavaBean的Bean标签a)用于定义一个变量,属性id指定变量存放在scope中的key,toScope属性指定这个变量存放的范围,如果没有设置toScope属性,则这个变量存放在page范围内。给id属性定义的变量赋值有三种方式:a1)设置value属性例如:a2)同时设置name和property属性。name属性指定一个已经存在的Bean,property指定已经存在的Bean的某个属性,id作为key或者变量。例如:ServletContextName:contextBean属于ServletContext类型a3)同时设
23、置name和type属性。name属性指定已经存在的JavaBean,type属性指定这个JavaBean的完整的类名。id作为key或者变量。例如:该标签会依次在page、request、session和application范围中根据key(loginForm)来查找LoginForm的对象,也可以通过属性scope来指定一个查找的范围。注意:属性id定义的变量也是LoginForm的对象变量(对象引用)。b)用于在页面上输出某个Bean或者其属性的内容。例如:注意:该标签自动会从page、request、session和application范围中根据name指定的key去查找对应的对象,也可以用scope属性来限定某个范围。另外,属性filter:true表示将html中的标记作为普通字符显示false表示不会把html中的标记作为普通字符显示,默认为true。c)用于获得Map、Collection或者数组的长度。包括以下属性:id:定义一个Integer类型的变量name:指定已经存在的Map、Collection或者数组变量例如:3、Logic标签库该标签库中的标签可以根据特定的逻辑条件来控制输出页面的内容,或者循环遍历集合中所有的元素。Logic标签库中的标签分为以下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业子公司管理准则
- 办公楼配电房升级改造协议
- 校领导在军训总结大会上的感想5篇
- 离职员工工作交接清单制度
- 质量检测员合同范本
- 儿童教育技术合同指南
- 房地产行政人事合同
- 办公园区维修合同
- 云计算中心施工合同
- 建筑照明单项施工合同
- 第15课《诫子书》课件(共31张)语文七年级上册
- 人教版六年级上册数学期末看图列式计算专题训练
- GB/T 43321-2023铜及铜合金钎焊推荐工艺规范
- 江苏省城镇污水处理厂纳管工业废水分质处理评估技术指南(试行)
- 机械伤害事故现场的紧急救援和治疗措施
- 围墙监控施工方案
- 14S501-2 双层井盖图集
- 广东省湛江市廉江市第四中学2023-2024学年八年级上学期期中考试物理试题
- 第13课冲出地球(教学课件)六年级科学上册
- 《新媒体导论》(第二版)课件全套 -第1-9章 理解新媒体:多重属性的复合-新媒体文化:流动的亚文化
- 工程变更申请单(ECR)
评论
0/150
提交评论