bean标签的公共属性:
id - 定义一个变量
name - 引用一个存在的bean或对象的名字
property - 被引用的bean的属性
scope - 放置或搜索bean的范围,若没有制定,则依次 page--request---session--application
1.<bean:define/>
作用:把一个bean 或其属性,定义成一个变量
* 通过<bean:define/>定义的变量可以通过JSP脚本、EL以及Struts本身的<bean:write/>标记访问。
Example1:
1)定义一个Java bean:student,并且对其属性进行赋值
2)通过<bean:define/>定义stuName、stuAge、stuGender三个变量,将student这个对象的属性值赋值给这些变量
<bean:define id="stuName" name="student" property="name"></bean:define>
<bean:define id="stuAge" name="student" property="age"></bean:define>
<bean:define id="stuGender" name="student" property="gender"></bean:define>
3)输出
<%=stuName%>
${stuAge }
<bean:write name="stuGender"/>
* 如果JavaBean的属性是List等类型,可以指定type属性
Example2:
1)在Java Bean中添加List属性,并提供get/set方法。
private List songs;
public List getSongs() {
List list = new ArrayList();
list.add("我爱北京天安门");
list.add("我和你");
list.add("我不做大哥好多年");
return list;
}
2)<bean:define id="songs" name="student" property="songs"></bean:define>
3)输出
${mySongs[0] }
* 定义新变量,例如:
<bean:define id="bookName" value="Effective Java"></bean:define>
2.<bean:write/>
作用:输出 bean 或bean属性;
等价于: ${} 或者 <%= %>
3.<bean:message/>
操作struts中的properties资源文件内容:
例如,在properties资源文件中有:Welcome = <h1>jfoiajajgejg,那如何使用该值呢?
<bean:message key= "Welcome" /> //这块值就等于:.jfoiajajgejg
在该标签中,还提供了一个占位功能:Welcome = <h1>jfo{0}iajajgejg,
<bean:message key= "Welcome" arg0="wjr" /> //这块值等于:.jfowjriajajgejg
国际化:即是配置多个properties资源文件,并在该文件名后加上:_语言代码就可以了:例如: ApplicationResources.properties
ApplicationResources_en_US.properties //表示英语
然后分别在不同properties资源文件中写入相应要显示的不同内容。浏览器会自动根据它当前的语言环境自动匹配相应的properties资源文件。
4.<bean:size/>
作用:获得一个集合(数组,Connection,Map)的大小
Example1:
1)定义Java Bean:student
2)读取student这个java bean的songs的size
<jsp:useBean id="student" class="com.bean.Student"></jsp:useBean>
<bean:size id="songsize" name="student" property="songs"/>
3)输出songsize值
Example2:定义一个列表,输出其size,要求使用<bean:size/>获取该值
1)<%定义一个List,并初始化%>
2)使用: <bean:size id="listsize1" collection="<%=list %>"/>
注意:如果使用${},必须要把list放置到范围对象中
3)输出