struts Bean标签库

好久没写笔记了,今天来兴致了,写点意思一下吧。

1.Struts Bean标签库中的标签可以访问已经存在的JavaBean以及他们的属性,还可以定义心的Bean,把他存放在

page范围内或者用户指定的范围内,供网页内其他元素访问。

2.Bean标签库大致可以分为以下三类:1/用于访问HTTP请求信息或JSP隐含对象的Bean标签。2/用于访问Web应

用资源的Bean标签。3/用于定义或输出JavaBean的Bean标签。 

3.“<bean:header>”标签用于检索HTTP请求中的Header信息。如:

<bean:header id="lang" name="Accept-language"/>其中id是java.lang.String类型的标量用于存储请求Header中

的"Accept-Language"信息。整个操作等价于下面的JSP程序段。

<%

           String id = "lang";

           String name = "Accept-Language";

          String value = ((HttpServletRequest)pageContext.getRequest()).getHeader

(name);

          pageContext.setAttribute(id,value);

%>

4.<bean:parameter>标签用于检索HTTP请求参数。如:<bean:parameter id = "arg1" name="testg"

value="noarg"/> 的变量不再是java.lang.String类型,而是字符串数组类型,用于存放所有和name属性匹配的请求

参数值。如:<bean:parameter id="arg2" multiple="yes" name="testarg" value="noarg"/> 所得到的testarg中就存

在三个参数arg2[0]=123,arg2[1]=456,arg[2]=789。

5.<bean:resource>标签用于检索Web资源的内容。如:

<bean:resource id="resource" name="/testpage.jsp"/><bean:write name="resource"/>

 ,它的值为testpage.jsp的源文件内容。这个标签有意思,如果可以任意指定一个URL就可以返回相应的原码文

件,是不是就可以动态的监视某个网页上的数据和行为了呢?只是个猜想,还没试过。有机会看看。

6.<bean:struts>标签用于检索Struts框架内在的对象,如:ActioinFormBean,ActionForward或ActionMapping。

如:<bean:struts id="forward" forward="BeanResource"/>

7.<bean:include>标签和标准的JSP标签<jsp:include>很相似,都可以用来包含其他Web资源的内容,区别在于

<bean:include>标签把其他Web资源的内容存放在一个变量中,而不是直接显示在网页上。

 8.<bean:define>标签用于定义一个变量。id属性指定变量的名字,toScope属性指定这个变量的存放范围。设置i

d变量有三种方式:1/<bean:define id="stringBean" value="BeanTaglibs"/>设置 value属性,此时

假设请求的URL为http://localhost:8080/beantaglibs/BeanServlet.jsp?testarg=123&testarg=456&testarg789那么

如果希望检索出所有和参数名批判的请求参数,应该设置<bean:parameter>标签的multiple属性,此时id属性定义

的id属性定义的

变量为字符串类型,value属性代表这个变量的字符串值。2/ 同时设置name和property属性。name属性指定一个

已经存在的Bean,property属性指定已经存在的Bean的某个<bean:define id="contextBean" name="sessionBean"

property="servletContext"/> 属性 同时设置name属性和type属性。name属性指定已经存3/<bean:define

id="contextBean_copy" name="contextBean" type="javax.servlet.ServletContext"/>在的javaBean,type属性指定这

个javaBean的完整的类名。

9.<bean:size>标签用于获得Map,Collection或数组的长度。id属性定义的变量的值为Map,Collection或数组的长

度。name属性指定已经存在的Map,Collection或数组变量。

10.<bean:write>标签用于在网页中输出某个Bean或它的属性的内容。如:<bean:size id="length" name="lines"/>

<bean:write name="length"/>以上<bean:write>标签仅仅设置了name属性,<bean:write>标签处理类会调用name

属性指定的toString()方法获得字符串,然后输出字符串内容。如果希望输出Bean的某个属性,应该同时设置

<bean:write>标签的name属性和property属性。property属性指定Bean的属性,如。<bean:write>标签的format属

性用于设置输出数据格式。如:<bean:write name="contextBean" property="serverInfo"/>

 <%

       request.setAttribute("floatval",Float.valueOf("3.14159"));

      Calendar gc=GregorianCalendar.getInstance();

      gc.setTime(new java.util.Date(session.getCreationTime()));

      request.setAttribute("now",gc);

%>

<bean:write format="#.####" name="floatval"/><BR>

<bean:write format="MM-dd-yyyy hh:mm:ss" name="now" property="time"/><BR>

以上代码定义的resource变量代表"/testpage.jsp"资源,因为没有设置input属性,所以resource变量为字符串类型

<bean:write>还有一个filter属性,默认值为true。如果filter属性为true,将把输出的内容中的特殊html符号作为普通

字符输出。如果为false则不会把输出内容中的特殊html符号转化为普通字符串。如:

<%

            String boldStart="<B>":

             String boldEnd="</B>";

             request.setAttribute("bs",boldStart);

             request.setAttribute("be",boldEnd);

%>

<bean:write name="bs"/ filter="true">bold

<bean:write name="be" filter="true"/><BR>

 11.struts Logic标签库中的标签可以根据特定的逻辑条件来控制输出网页内容,或者循环遍历集合中的所有元素。

Logic标签库中的标签大致分为以下几类:1/进行比较运算的logic标签;2/进行字符串匹配的logic标签;3/判断指定

内容是否存在的logic标签。4/进行循环遍历的logic标签。5/进行请求转发或重定向的logic标签。

12.<logic:present>和<logic:notPresent>标签判断指定的对象是否存在,该标签有以下一些属性:1/cookie属性:

判断指定的cookie是否存在。2/header属性:判断指定的Http请求Header是否存在。3/role属性;判断当前通过权

限验证的用户是否具有指定的安全角色。4/user属性:判断通过权限验证的用户是否拥有指定的用户名。

5/parameter属性:判断指定的请求参数是否存在。6/name属性:判断指定的javaBean是否存在。7/同时设置

name和property属性:name属性指定javaBean,property属性指定javaBean的某个属性,判断这个属性是否存在并

且是否为null。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值