Struts Bean标记库

本文详细介绍了StrutsBean标记库中的多种标记,包括访问HTTP请求信息、Web资源及定义和输出JavaBean的方法。通过具体示例展示了如何使用这些标记来简化Web应用的开发过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
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=ThisisbeanmessageNo.1
beanmessage2=ThisisbeanmessageNo.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格式输出。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值