Struts Bean标记库

 
Struts Bean 标记库
 
Struts Bean标记库内的各种标记主要是用来访问存在于Web应用各种范围内的JavaBean的。要使用Bean标记库必须先引入:
<%@ taglib uri = "http://struts.apache.org/tags-html" prefix = "html" %>
id 用于暂存从name 中取出的对象。以便在后面引用。
 
 
一、           访问 HTTP 请求信息相关标记及页面内各种参数的标记
1 <bean:header> 标记
用于获取HTTP请求中的Header信息。
   < bean:header id = "explorer" name = "user-agent" />
   您所使用的浏览器是: < bean:write name = "explorer" />
 
id: 在<bean:header>标记中将name属性中所指定的Header取出后,保存在id属性所命名的变量中,这个变量存放在pageContext内。即就是用于存放一个变量。
 
name: 用于指定要读取的Header名称。
 
2 <bean:parameter> 标记
用于读取HTTP请求中的参数。
A 请求参数不同名
   < html:link page = "/bean.jsp?testString=a+new+string&testInt=888" >
        单击此处添加 不同名请求参数
   </ html:link >
 
    < bean:parameter id = "teststr" name = "testString" value = "" />
    请求参数testString的值为: < bean:write name = "teststr" />< br />
    < bean:parameter id = "testint" name = "testInt" value = "" />
请求参数testInt的值为: < bean:write name = "testint" />
 
name: 用于指定页面请求中的参数名,如上所述,先后指定的请求参数名为testString和testInt.
id: 将取出的参数值保存于id指定的变量中。
value: 指定请求参数的默认值。当HTTP请求中不包含name属性所指定的参数时,若不为该参数指定一个值,则后台后报错。
 
B 请求参数同名
   < html:link page = "/bean.jsp?test=1000&test=2000&test=3000&test=4000" >
        单击此处添加 同名请求参数
   </ html:link >
 
    < bean:parameter id = "tArray" name = "test" value = "" multiple = "yes" />
    参数列表如下: < br />< logic:iterate id = "tvalue" name = "tArray" >
        < bean:write name = "tvalue" />< br />
    </ logic:iterate >
若要把所有请求参数全部显示出来,要把multiple设为yes即可。
 
3 <bean:cookie> 标记
Cookie是Web服务器留在客户端用于识别客户身份的一种方式,它是用户服务访问服务器时,服务器创建并保存在客户端的。
    < bean:cookie id = "cookieValue" name = "cookieName" value = "emptyValue" />
    <%
        if (cookieValue.getValue().equals( "emptyValue" )){
            Cookie newCookie= new Cookie( "cookieName" , "newCookieValue" );
            newCookie.setComment( "This is a new cookie" );
            newCookie.setMaxAge(3600);
            response.addCookie(newCookie); 
        }
      %>
 
得到多个Cookie
    < bean:cookie id = "cookieArray" name = "cookie" value = "emptyValue" multiple = "yes" />
    < logic:iterate id = "cookieValue" name = "cookieArray" >
        < bean:write name = "cookieValue" />< br />
    </ logic:iterate >
 
name: 指定Cookie的名字
id: 指定暂存name的变量
value:name 为空时,用value作为其值
multiple: 指明可以读出所有Cookie对象。
 
3 <bean:page> 标记
用于获取JSP内建对象。JSP内建对象包括request、response、pageContext、session、applicate、out、config、page、execption。
 
< bean:page id = "session_dup" property = "session" />
<%
    response.setCharacterEncoding( "gb18030" );
    request.setCharacterEncoding( "gb18030" );
    out.println( "Session 创建时间: " +session_dup.getCreationTime()+ "<br/>" );
    out.println( "Session 的ID:" +session_dup.getId()+ "<br/>" );
    out.println( "Session 失效时间:" +session_dup.getMaxInactiveInterval()+ "<br/>" );
    out.println( " 上次访问时间:" +session_dup.getLastAccessedTime());
  %>
 
id: 暂存从property得到的JSP内建对象。
property:指定要得到的 JSP内建对象包括request、response、pageContext、session、applicate、out、config、page、execption。
 
 
二、           访问 Web 资源的标记
1 <bean:include> 标记
用于将其它资源放入一个对象中,而不是像 <jsp:include> 标签那样直接显示在网页上。若要显示出来。则需要用 <bean:write> 输出。
常用的属性:
属性
描述
Id
id: 暂存从property得到的page、forward、href的对象。
Page
一个内部资源 ,引用相对URI
forward
指定全局转发路径,和struts-config.xml文件中的全局转发的元素相匹配
Href
指一个外部的完整的URL链接。
 
< bean:include id = "indexpage" page = "/index.jsp" />
< bean:write name = "indexpage" filter = "false" />
 
< bean:include id = "indexpage" forward = "index" />
< bean:write name = "indexpage" filter = "true" />
 
2 <bean:message> 标记
用来显示资源文件中的消息文本。
 
属性
描述
Key
资源文件中定义消息关键字
Locale
用户会话中存储的区域对象的属性名称。若没有设置,默认值是 Action.LOCALE_KEY
Bundle
在应用程序上下文中,存储资源对象的属性的名称。如果没有设置这个属性,默认值是 Action.MESSAGE_KEY
arg0
第一个替换参数值
arg1
第二个替换参数值
arg2
第三个替换参数值
arg3
第四个替换参数值
 
使用<bean:message>标记从资源文件中指定消息文本有 三种方式。
 
(1)      直接在<bean:message> 标记中使用key 属性指定对应的资源文件中的消息文本。
如下所示:
< message-resources parameter = "cn.ApplicationMessageResources" key="message"/ >
 
< bean:message bundle="message" key="beanmessage1" />
< bean:message bundle = "message" key="beanmessage2" />
 
beanmessage1 = This is bean message No.1
beanmessage2 = This is bean message No.2
beanmessage3= Hi, {0}{1}
 
bundle:它和struts-config.xml文件中的message-resources标记内的key属性相对应。
key: 它和资源文件中的名字对应。
 
(2)      使用<bean;message> 标记的name 属性指定一个字符串类型的变量,以该变量的值作为消息文本的key 值。
<%
    String test= "beanmessage3" ;
    pageContext.setAttribute( "messagekey" ,test);
   
  %>
  < bean:message bundle = "message" name = "messagekey" arg0 = "China" arg1 = "Welcome to come" />
 
 
(3)      使用一个已经存在的JavaBean 对象名作为name 属性的值,再将其中某个属性作为对象内的property 属性的值,以该JavaBean 对象中的这一属性所存入的字符中值为消息文本的key
 
 
3 <html:resource> 标记
用于指定Web 资源的实际内容,如显示网页源代码。
< bean:resource id = "indexpage" name = "/bean.jsp" />
< bean:write name = "indexpage" filter = "true" />
< bean:include id = "indexpage" forward = "index" />
< bean:write name = "indexpage" filter = "true" />
结果相同。
 
属性
描述
Id
脚本变量和要定义的页作用域属性的名称
Name
资源的相对路径
Input
如果这个属性不存在,资源的类型就是字符串
 
 
三、定义和输出各种JavaBean及其相应属性值的标记
1 <bean:define> 标记
用于定义一个变量。
 
属性
描述
Id
新定义的 bean脚本变量名称,必须设置
Type
定义引入脚本变量的类
Value
为 id属性定义的脚本变量分配一个新的对象
Name
目标 bean的名称。若value属性没有设置,这个属性就必须设置
property
Name属性定义的 bean的属性名称,用来定义新的bean
Scope
源 bean的作用域。若没有设置,搜索范围是从页作用域到应用程序作用域
toScope
目标 bean的作用域。若没有设置,默认值是页作用域
 
< bean:define id = "testString" value = "this is a test string" />
< bean:write name = "testString" />
 
<%
    Date d= new Date();
    pageContext.setAttribute( "currDate" ,d);
  %>
< bean:define id = "mill" name = "currDate" property = "time" />
< bean:write name = "mill" />
 
2 <bean:size> 标记
用于获取集合对象或数组对象的长度。
 
<%
    ArrayList list= new ArrayList();
    list.add( new Integer(1));
    list.add( new Integer(2));
    list.add( new Integer(3));
    list.add( new Integer(4));
    pageContext.setAttribute( "list" ,list);
  %>
< bean:size id = "size" name = "list" />
< bean:write name = "size" />
 
3 <bean:write> 标记
用于在网页上输出内容
 
属性
描述
Id
新定义的 bean脚本变量名称,必须设置
Type
定义引入脚本变量的类
Value
为 id属性定义的脚本变量分配一个新的对象
Name
目标 bean的名称。若value属性没有设置,这个属性就必须设置
property
Name属性定义的 bean的属性名称,用来定义新的bean
Scope
源 bean的作用域。若没有设置,搜索范围是从页作用域到应用程序作用域
toScope
目标 bean的作用域。若没有设置,默认值是页作用域
Filter
若为 true时,只把字符串原样输出,否则将字符串按HTML格式输出。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值