<bean:write>标签

<bean:write>能输出request、session、application、page四个域中能访问到的变量,与EL表达式不同的是,如果变量不存在或者访问不到,会抛出异常

<bean:write>常用的属性有如下几个:

1、name,用来指定属性的名字

2、filter,用来指定是否屏蔽到属性值的HTML格式

3、property,用来指定name所代表的对象的属性名字

4、format,用来指定显示的时间,数字,日期等的格式

例1:

某处设置了request.setAttribute("hello","helloworld");

则在某个jsp页面中,用struts的write标签取出并显示的方式如下:

<bean:writename="hello"/>,则页面上显示出hello world。

例2:

某处设置了request.setAttribute("bj","<fontcolor='red>欢迎你</font>");

则在某个jsp页面中,用struts的write标签取出并按红色的方式显示的方式如下:

<bean:writename="bj" filter="false"/>,则页面上显示出红色的欢迎你。如果filter属性不设置为false,则默认为true,那么显示出的内容就为<fontcolor='red>欢迎你</font>。

例3:

某处设置了request.setAttribute("date",newDate());

则在某个jsp页面中,用struts的write标签取出并按指定方式显示日期的方法如下:

<bean:writename=“date”/>,此为默认的显示方法,显示出的时间为:

Fri Mar 2815:04:21 CST 2008

<bean:writename=“date” format="yyyy-MM-dd HH:mm:ss"/>,此为自己指定日期的显示格式,显示出的时间为2008-3-28 15:04:21

例4:

某处设置了request.setAttribute("n",“1223333.333”);

则在某个jsp页面中,用struts的write标签取出并按指定方式显示数字的方法如下:

<bean:writename=“n”/>,此为默认的显示方法,显示出的数字位1223333.333

<bean:writename=“n” format="###,###.####"/>,此为自己指定数字的显示格式,显示出的时间为1,223,333.333

如果希望小数点后的不足四位时,缺位补0,则应

<bean:writename=“n” format="###,###.0000"/>,此为自己指定数字的显示格式,显示出的时间为1,223,333.3330

例5:

假如有User类和Groupe类,User类有属性名字userName,年龄age,性别sex和所属的Groupe,Groupe类有属性组名groupeName,并均具有相应的get和set方法。

某处设置了request.setAttribute("user",newUser("张三","20","男",new Groupe("三组")));

则在某个jsp页面中,用struts的write标签取出并按指定方式显示结构体的方法如下:

用户名:<input type="text" value="<bean:write name="user" property="userName"/>">
年龄:<input type="text" value="<bean:write name="user" property="age"/>">
性别:<input type="text" value="<bean:write name="user" property="sex"/>">
组名:<input type="text" value="<bean:write name="user" property="groupe.groupeName"/>">

<bean:cookie>、<bean:parameter>、<bean:header>标签

<bean:cookie>、<bean:parameter>、<bean:header>标签用于获取cookie、地址栏参数、header中的对象,这几个标签不能输出,只能将获取到的对象保存到另一个变量中,供其他标签使用

<bean:cookie id="sessionid" name="JSESSIONID"/> <!--获取cookieJSESSIONID放进名为sessionid的变量中-->
<bean:write name="sessionid" property="value"/>

<bean:parameter id="action1" name="action2"/>  <!--获取地址栏名为action2的参数,放入名为action1的变量中-->
<bean:write name="action1" />

<bean:header id="host1" name="host"/>  <!--获取Header参数host,放入变量host1-->
<bean:write name="host1" />

<bean:message>标签

<bean:message>标签用于输出ResourceBundle中的一条消息.<bean:message>标签的bundle属性指定Resource Bundle,它和Struts配置文件的<message:resource>元素的可以属性相匹配.如果没有设置bundle属性,就采用默认的ResourceBundle。

Beantaglibs应用的Struts配置文件(Struts-config.xml)中配置了两个ResourceBundle:

<message-resources parameter="ApplicationResource" />
<message-resources parameter="SpecialResouces" key="special"/>

第一个Resource bundle 没有指定key属性,因此默认的ResourceBundle,它的资源文件ApplicationResource.properties,在这个文件中定义一条消息:

.hello=Hello,{0}

第二个Resource bundle指定key属性为”special”,它的资源文件为SpecialResources.properties,这个文件中定义了一条消息:

.hello=Hello,everyone!

在<bean:message>标签中指定消息key有三种方式:

1.<bean:message>标签的key属性直接指定消息key,例如:

<bean:message bundle="special" key="hello"/>

2.<bean:message>标签的name属性指定一个可以转化为字符串的变量,这个变量的字符串值为消息key,例如:

<%
              //这个hello要对应到资源文件中的hello
              Request.setAttribute("StringBean","hello");
%>
 <bean:message bundle="special" name="stringBean"/>

3.同时指定<bean:message>标签的name属性和property属性.name属性指定一个JavaBean,property属性指定JavaBean的一个属性,这个JavaBean的属性的值就是消息的key,例如

<%
              SomeBean bean = new SomeBean();
               Bean.setName("hello");
               Request.setAttribute("someBean",bean);
%>
 <bean:message bundle="special" name="someBean" property="name"/>

上面定义一个SomeBean类型的someBean变量,它的name属性为”hello”,因此消息的key为”hello”

对于带参数的复合消息,可以使用Bean:message标签中的arg0,arg1等属性来设置参数值

<bean:message key="hello" arg0="Linda"/>

资源文件ApplicationResources.properties

welcome =<h1>欢迎光临!!!!!!</h1>
welcome1 =<h1>欢迎 {0} 光临!!!!!!</h1>

<bean:resource>标签

<bean:resource>标签用于检索Web资源的内容,它具有以下属性:

1.  id属性:定义一个代表Web资源的变量。

2.  name属性:指定Web资源的路径。

3.  input属性:如果没有设置input属性,则id属性定义的变量为字符串类型;如果给input属性设置了值(可以是任意字符串),则id属性定义的变量为java.io.InputStream类型。

<bean:struts>标签

<bean:struts>标签用于检索Struts框架内在的对象,如ActionFormBean、ActionForward或ActionMapping。<bean:struts>标签的id属性定义一个page范围的变量,用来引用Struts框架的内在对象。必须设置formbean、forward或mapping属性中的一个属性,来指定被引用的Struts内在对象:

1.  formbean属性:指定ActionFormBean对象,和Struts配置文件的<form-bean>元素匹配。

2.  forward属性:指定ActionForward对象,和Struts配置文件的<global-forwards>元素的<forward>子元素匹配。

3.  mapping属性:指定ActionMapping对象,和Struts配置文件的<action>元素匹配。

<bean:include>标签

<bean:include>标签和标准的JSP标签<jsp:include>很相似,都可以用来包含其他Web资源的内容,区别在于<bean:include>标签把其他Web资源的内容存放在一个变量中,而不是直接显示到网页上。<bean:include>标签的id属性定义一个代表其他Web资源的变量。

可以通过<bean:include>标签的forward、page或href属性来指定其他Web资源:

1.  forward:指定全局转发路径,和Struts配置文件的<global-forwards>元素中的<forward>子元素匹配。

2.  page:指定相对于当前应用的URI,以“/”开头。

3.  href:指定完整的URL。

Struts 1 之<bean>标签库的更多相关文章

  1. 【转】Struts1.x系列教程(6):Bean标签库

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

  2. Struts 有哪些常用标签库

    Struts 有哪些常用标签库 1.html标签库 2.bean标签库 3.logic标签库

  3. 菜鸟学习Struts——bean标签库

    一.Struts标签库. Struts实际上包含了4个标签库:bean,logic,html,tiles bean:用来在属性范围中定义或取得属性的,同时可以读取资源文件信息 logic:替代JSTL ...

  4. Struts 1 之<logic>标签库

    1. logic:empty logic:empty标签是用来判断是否为空的.如果为空,该标签体中嵌入的内容就会被处理.该标签用于以下情况: 当Java对象为null时 当String对象为" ...

  5. Struts 1 之<html>标签库

    <html:html>标签 <html:html>标签用于在网页开头生成HTML的<html>元素,它只有一个用于显示用户语言的lang属性: <html:h ...

  6. Struts(22)标签库具体解释

    要使用Struts2的标签,仅仅须要在JSP页面加入例如以下一行定义就可以: <%@ taglib prefix="s" uri="/struts-tags&quo ...

  7. jstl标签库基础教程及其使用代码

    概述 在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Sta ...

  8. Struts、JSTL标签库的基本使用方法

    一 使用Struts标签之前需要经过下面3个步骤的配置. 1.导入TLD文件. 2.在web.xml中注册标签库. 3.在页面中引入标签库. 下面详细介绍以上步骤. 1 导入TLD文件. TLD文件是 ...

  9. Struts 有哪些经常使用标签库

    Struts 有哪些经常使用标签库 1.html标签库 2.bean标签库 3.logic标签库

随机推荐

  1. [Luogu 2090]数字对

    Description 对于一个数字对(a, b),我们可以通过一次操作将其变为新数字对(a+b, b)或(a, a+b). 给定一正整数n,问最少需要多少次操作可将数字对(1, 1)变为一个数字对, ...

  2. 计蒜客NOIP模拟赛(2) D1T1邻家男孩

    凡是一个具有领导力的孩子.现实生活中他特别喜欢玩一个叫做 UNO 的纸牌游戏,他也总是带着其他小朋友一起玩,然后战胜他们.慢慢地,他厌倦了胜利,于是准备发明一种新的双人纸牌游戏. 初始时,每个人手中都 ...

  3. 智能指针之 auto_ptr

    C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理,该智能指针在C++11中已经被弃用,转而由unique_ptr替代, 那这次使用和实现,就具体讲一下auto_pt ...

  4. 镜像文件、光盘、iso文件、启动盘

    刚入大学,有一门计算机硬件维修课程,韩国彬老师(学生们公认的好老师).当时韩老师教给了我们好多实用的好东西,例如装系统,做镜像文件,装虚拟机,ghost版本系统,计算机组装等等.由于高中刚刚过度到大学 ...

  5. decode-ways(动态规划)

    题目描述 A message containing letters fromA-Zis being encoded to numbers using the following mapping: 'A ...

  6. C语言成语设计第一次作业

    一 1.求圆面积和周长 输入圆的半径,计算圆的周长和面积. 2.流程图 3.测试数据及运行结果 测试数据:r=7 运行结果 4.实验分析 问题:第一次输入提示时未加双引号 解决办法:发现问题后加了双引 ...

  7. dfsdf

    This project was bootstrapped with Create React App. Below you will find some information on how to ...

  8. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用第三方组件

    Unity开发中,常常会用到一些第三方组件.本文以实例介绍如何在热更新脚本中使用这些第三方组件. 首先说明几个基本步骤: 第三方组件通常是以dll或者源码方式提供的,它们本身往往无法热更. 我们在脚本 ...

  9. Linux系统之TroubleShooting(故障排除)(转)

    尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题.那么这篇博文就总结一下一些常见的故障排除方法,但是不可能 ...

  10. MySQL数据库将多条记录的单个字段合并成一条记录

    原SQL AND acc.id = accRole.acc_id) AND accRole.role_id = T_PM_ROLE.id ORDER BY acc.id 结果,有一个人有两个角色,如果 ...