struts标签库.docx
- 文档编号:9402499
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:22
- 大小:23.01KB
struts标签库.docx
《struts标签库.docx》由会员分享,可在线阅读,更多相关《struts标签库.docx(22页珍藏版)》请在冰豆网上搜索。
struts标签库
struts1标签库
1、Bean标签库
Bean标签库中标签可以访问已经存在的JavaBean以及它们的属性,还可以定义新的Bean,把它存放在用户指定的任何范围内,供网页或者其它元素访问,
Bean标签库分为以下三类:
1)用于访问HTTP请求信息或者JSP隐含对象的Bean标签
a) cookie> 用于检索发送到服务器端的Cookie,包括以下属性: id: 定义一个Cookie类型的变量,这个变量又是作为将信息存放在page范围内的key。 name: 指定Cookie的名字 value: 指定Cookie的默认值,如果name指定的Cookie不存在, 就使用value指定的属性值。 例如: cookieid="cookie"name="cookieName" value="defaultValue"/> 先检索名为"cookieName"的Cookie是否存在,如果 存在,就把它的值赋给cookie变量的value值,如果 不存在,cookie变量的值就采用默认值"defaultValue"。 b) header> 用于检索HTTP请求中的Header信息,包括以下属性: id: 定义一个存放信息的字符串变量,这个变量又是作为 将信息存放在page范围内的key。 name: 指定要检索的Header中的字段名字 例如: headerid="lang"name="Accept-Language"/> 等于 Stringvalue= (HttpServletRequest)request.getHeader("Accept-Language"); Stringlang=value; pageContext.setAttribute("lang",value); c) parameter> 用于检索HTTP的请求参数,包括以下属性: id: 定义一个存放信息的字符串变量,这个变量又是作为 将信息存放在page范围内的key。 name: 指定请求的参数名 value: 指定请求参数的默认值 例如1: parameterid="arg1"name="testarg" value="noarg"/> 等于 Stringtemp=request.getParameter("testarg"); if(temp! =null){ Stringarg1=temp; pageContext.setAttribute("arg1",temp); }else{ Stringarg1="noarg"; pageContext.setAttribute("arg1","noarg"); } 例如2: parameterid="arg2"multiple="yes" name="testarg"value="noarg"/> arg2是一个存放所有request请求中参数值的字符串数组。 输出所有的参数值: <% for(inti=0;i out.write(arg2[i]+" } %> d) page> 用于检索JSP隐含对象(如request、session、response)包括 以下属性: id: 定义一个引用隐含对象的变量,这个变量又是作为 将信息存放在page范围中的key。 property: 指定隐含对象的名字,可选值包括application、 config、request、response和session。 例如: pageid="this_session"property="session"/> writename="this_session"property="creationTime"/> 表示定义了一个"this_session"变量,它引用JSP中 的session隐含对象,接着输出该变量中属性 createTime的值(其实是session中属性createTime的值)。 2)用于访问Web应用资源的Bean标签 a) message> 用于输出资源配置文件中的一条信息, message>标签的bundle 属性指定资源配置文件,它和Struts配置文件中的 元素的key属性匹配。 如果没有设置bundle属性,就采用默认的资源配置文件。 Struts配置文件中配置了两个资源配置文件: 第一个资源配置文件没有指定key属性,因此是默认的资源配置文件, 它的资源文件为ApplicationResources.properties。 第二个资源配置文件指定key属性为"special",它的资源文件 为SpecialResources.properties。 内容: hello=Hello,ereryone! message>标签三种使用方式: a1) messagebundle="special"key="hello"/> bundle--> key-->SpecialResources.properties中的hello 注意: 如果 message>中设置了属性bundle,那么 时会报错的。 a2) message>标签中的属性name指定一个scope中的key,value为 资源配置文件中的key。 例如: <%request.setAttribute("stringBean","hello")%> messagebundle="special"name="stringBean"/> hello-->SpecialResources.properties中的hello a3)同时指定 message>标签的name和property,name指定 一个JavaBean,property指定JavaBean中的一个get方法,get方法 的返回值就是资源配置文件中的key。 例如: <% SomeBeanbean=newSomeBean(); bean.setName("hello"); request.setAttribute("someBean",bean); %> messagebundle="special"name="someBean" property="name"/> bundle--> name-->request中的key(someBean) property-->bean的getName() getName()返回值(hello)-->资源配置文件中key(hello) b) resource> 用于检索Web资源的内容,包括以下属性: id: 定义一个代表Web资源的变量 name: 指定Web资源的路径 input: 如果没有设置input属性,则id属性定义的变量为字符串 类型;如果给input设置了值(可以是任意字符串),则id 属性定义的变量为InputStream类型。 例如: resourceid="resource"name="/testpage1.jsp"/> resource变量代表"/testpage1.jsp"资源,由于没有设置input 属性,因此resource变量为字符串类型,它的值为testpage1.jsp 的源文件内容。 c) struts> 用于检索Struts框架内在的对象,如ActionFormBean、ActionForward和 ActionMapping。 包括以下属性: id: 定义一个page范围内的变量,用来引用Struts框架内的对象。 formbean: 指定ActionFormBean对象,和Struts配置文件中的 forward: 指定ActionForward对象,和Struts配置文件中的 mapping: 指定ActionMapping对象,和Struts配置文件中的 注意: 属性id必须和下面三个属性中的一个匹配 例如: strutsid="forward"forward="BeanResources"/> writename="forward"property="path"/> 以上代码的用属性id定义了一个"forward"变量,它引用 一个名为"BeanResources"的ActionForward对象,在Struts 文件中,与之匹配的 ... write>标签输出ActionForward对象的path属性值 d) include> 和标准的JSP标签 include>很相似,都可以用来包含其他Web资源 的内容,区别在于 include>标签把其它Web资源的内容存放在一 个变量中,而不是直接显示在页面上。 包括以下属性: id: 定义一个代表其它Web资源的位置 forward: 指定全局转发的路径,和Struts配置文件中的 page: 指定相对于当前应用的URL,以"/"开头。 href: 指定完整的URL 例如: includeid="p1"page="/page.jsp"/> includeid="p2"forward="success"/> writename="p1"filter="false"/> writename="p2"filter="false"/> 3)用于定义或者输出JavaBean的Bean标签 a) define> 用于定义一个变量,属性id指定变量存放在scope中的key,toScope属性指定这个 变量存放的范围,如果没有设置toScope属性,则这个变量存放在page 范围内。 给id属性定义的变量赋值有三种方式: a1)设置value属性例如: defineid="age"value="25"/> a2)同时设置name和property属性。 name属性指定一个已经存在的 Bean,property指定已经存在的Bean的某个属性,id作为key或者变量。 例如: <%request.setAttribute("sessionBean",session);%> defineid="contextBean"name="sessionBean" property="servletContext"/> ServletContextName: writename="contextBean" property="servletContextName"/> contextBean属于ServletContext类型 a3)同时设置name和type属性。 name属性指定已经存在的JavaBean ,type属性指定这个JavaBean的完整的类名。 id作为key或者变量。 例如: defineid="loginForm_copy"name="loginForm" type="com.briup.web.LoginForm"/> writename="loginForm_copy"property="username"/> 该标签会依次在page、request、session和application范围 中根据key(loginForm)来查找LoginForm的对象,也可以通过 属性scope来指定一个查找的范围。 注意: 属性id定义的变量也是LoginForm的对象变量(对象引用)。 b) write> 用于在页面上输出某个Bean或者其属性的内容。 例如: writeid="length"name="list"/> writename="student"property="xh"/> writeformat="#.####"name="employee" property="salary"/> writeformat="MM-dd-yyyyyhh: mm: ss" name="now"property="time"/> 注意: 该标签自动会从page、request、session和application 范围中根据name指定的key去查找对应的对象,也可以用 scope属性来限定某个范围。 另外,属性filter: true表示将html中的标记作为普通字符显示 false表示不会把html中的标记作为普通字符显示,默认为true。 c) size> 用于获得Map、Collection或者数组的长度。 包括以下属性: id: 定义一个Integer类型的变量 name: 指定已经存在的Map、Collection或者数组变量 例如: sizeid="length"name="list"/> writename="length"/> 2、HTML标签库 该标签库可以和标准的HTML标记完成相同的功能,主要分为以下几类: 1)用于生成基本的HTML的标签 a) html> 用于在页面的开头生成HTML的元素,该标签有一个属性 lang来显示用户显示的语言。 例如: htmllang="true"/> 如果用户的浏览器使用中文,那么该代码在运行时被解析为 b) base> 用于在页面的 的绝对URL路径。 例如: base="http: //localhost: 8080/jsp"/> 那么使用该base的页面已经将URL定位到应用程序jsp 的根目录下面,要从该页面再去访问其它资源,只要 使用相对路径即可。 c) link> 用于生成HTML的元素,包括以下的属性: forward: 指定全局的转发链接,对应于Struts配置文件中 的 href: 指定完整的URL链接 page: 指定相对于当前应用的URL 例如: c1) linkforward="index"> LinktoGlobalActionForward link> index对应于struts-config.xml中: 全局: 上述标签会自动生成HTML代码: LinktoGlobalActionForward c2) linkhref="http: //localhost: 8080/app/index.jsp"> Generatean"href"link 生成的HTML代码如下: //localhost: 8080/app/index.jsp"> Generatean"href"link c3) linkpage="/login.do"> Arelativelink link> 生成的HTML代码如下: Generatean"href"link 使用该标签的优点: b1)应许再URL中以多种方式包含请求参数 b2)在当前浏览器关闭Cookie时,会自动重写URL,把 jsessionid作为请求参数包含在URL中,用于跟踪 用户的状态(除了href属性)。 d) img> 用于在HTML中嵌入图片 例如: d1) imgpage="/girl.gif"/> 生成HTML代码如下: d2) imgsrc="/app/girl.gif" paramId="orderid"paramName="3"/> 生成HTML代码如下: orderid=3"/> 2)用于生成HTML表单的标签 a) form> 生成HTML 例如: formaction="/login"> 生成的HTML代码如下: action="/app/login.do"> 对应于struts-config.xml中部分代码: type="com.briup.web.action.LoginAction" name="loginForm" scope="request" input="/login.jsp" validate="true"> b) text> 生成HTML 例如: textproperty="age"/> property属性指定的字段和ActionForm中的属性匹配 生成HTML代码如下: value="ActionForm中属性age的值"/> c) hidden> 生成HTML 例如: hiddenproperty="age"/> 生成HTML代码如下: d) submit> 生成HTML 例如: submit>提交 submit> 生成HTML代码如下: e) cancel> 在表单上生成取消按钮 例如: cancel>Cancel cancel> 生成HTML代码如下: name="org.apache.struts.taglib.html.CANCEL" value="Cancel"/> 注意: 在Action类中,应该以编程的方式来处理取消事件。 f) reset> 生成HTML 例如: reset>重置 reset> 生成HTML代码如下: g) checkbox>生成HTML h) multibox>在表单上生成复选框元素 i) radio>生成HTML j) select>生成HTML k) option>生成HTML l) options>生成一组HTML m) optionsCollection>生成一组HTML n) file>实现将本地文件上传到服务器端 formaction="sendFile.do"method="POST" enctype="multipart/form-data"> fileproperty="file"/> form> 使用注意: n1) file>必须嵌套在 form>中 n2) form>标签的method属性必须为"POST" n3) form>标签的编码类型enctype必须设置 为"multipart/form-data" n4) file>标签必须设置property属性,这个 属性和ActionForm中FormFile类型的属性对应。 在ActionForm中必须配置: privateFormFilefile; publicFormFilegetFile(){returnfile;} publicvoidsetFile(FormFilefile){this.file=file;} 在Action中的处理: FormFilefile=registerForm.getFile(); //获得上传文件的名字 Stringfname=file.getFileName(); //从file中获得输入流 InputStreamis=file.getInputStream(); //构造一个输出流,并指定上传文件在服务器端存放路径 OutputStreamos=newFileOutputStream(dir+"/"+fname); //从is中读取字节流后写入到os中 注意: 上述标签要使用在 form>标签中,但是在 form>标签中也可以使用标准的 html标记
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- struts 标签