Struts2标签:
bean:
用来处理属性范围中的属性,可以对其进行复制、添加和显示,并可以完成国际化功能
logic:
用来完成页面上的逻辑判断和迭代循环
html:
用来替代html页面元素的标签
1)<bean: define>标签: 用来创建或复制一个属性范围中的属性
ex:
<bean:define id="username" value="Candy"></bean:define>
<%
pageContext.setAttribute("username","Candy");
%>
${username}
上面两句代码的功能是一样的
注意:
bean:define中的属性:
id: 表示新建立的属性范围中的名称,自行定义,如果有重复,则自动覆盖
value: 表示新建立的属性的值,只能是字符串(只要是value,就是新建-添加的)
2) <bean:define id=“myusername” name="username" scope="page" toScope="session">
</bean:define>
${myusername}
想复制属性,就替代value,加name属性
name: 表示所有复制的属性范围中的名称,与value不能同时使用
scope: 表示所要复制的属性所在的属性范围,如果不填写,默认是四种属性范围
toScope:
表示复制后的新的属性所保存的属性范围,如果不填写,默认是page范围。
*如果属性范围中保存的是一个对象,想复制该对象的一个属性
<%
Person p = new Persion();
p.setUsername("MLDN");
p.setPassword("123");
p.setAge(12);
p.setBirthday(new java.io.uti.Date());
pageContext.setAttribute("person",p); --保存对象
%>
3) <bean:define id="mydate" name="person" property="birthday" scope="page" toScope="session"> 获取对象属性
${mydate}
property: 表示所复制的属性其中包含的子属性的名称
4) <bean:size> : 讲一个属性范围中的集合对象的size取得并设置到属性范围中
<bean:size id="mysize" name="all" scope="page"> size==只是仅仅指页面 all ===集合的name值
</bean:size>
5)
<bean:include>:
讲一个页面中的所有代码保存到属性文件中
<bean:include id="myinclude" page="/suc.jsp"/>
id: 所包含的页面在属性范围中保存的名称
page: 所要包含的页面路径,注意需要加"/"
6)
<bean:write>
<%
request.setAttribute(" myname","<font coor='red'>aaa</font> ")
%>
bean:write <bean:write name="myname" filter=“true” scope="request" />
el: ${myname}
通过以上代码可以发现,
el表达式显示数据时会直接将html代码进行编译处理,
bean:write默认会直接将html代码显示到页面上
bean:write 可以通过filter属性来控制是否将html进行编译
filter为true表示不进行编译直接显示,默认为true
如果为false,则与el处理方式相同
bean:write还可以对日期和数字进行格式化显示
日期:如果要显示yyyy-MM-dd 格式
<bean:write name="myname" format="yyyy-MM-dd" scope="request" />
formate属性中格式的处理与SimpleDateFormat一样
数字格式化
<%
request.setAttribute("mymoney",562344.54);
%>
<bean:write name="mymoney" format="#,##0.00" scope="request"/>
${mymoney}
#和0都表示一位数字,这里="#,##0.00表示显示格式为:3位数字,3位数字,2位数字
#和0的区别,如果该位不存在时,如果使用#号,则不会显示该位,如果使用0,则会自动补0
可以对数字和日期格式进行统一的管理,在资源文件中加入以下配置:
org.apache.struts.taglib.bean.format.date = yyyy-MM-dd
(java.util.Date)
org.apache.struts.taglib.bean.format.int = #,##0.00
(byte short integer)
org.apache.struts.taglib.bean.format.float = #,##0.00
(-->float, double, bigDecimal)
完成以上配置,当属性范围出现日期或数字时,会自动按照配置的格式来显示,必须用<bean:write>
如果同时使用了统一的格式和单独编写的format格式,会按照单独编写的格式进行处理