配置:
由于struts标签和国际化紧密联系,所以要配置国际化文件。
1,在struts-config.xml文件中加入 <messageResources parameter="MessageResources" />
2,拷贝MessageResources.properties文件到src下
标签是在服务器端执行的。
<bean:write> 讲解
后台:
request.setAttribute("aa","hello Struts");
request.setAttribute("bb","<font color='red'>hello</font>");
request.setAttribute("cc",new Date());
request.setAttribute("dd",12345.45);
Group g = new Group();
g.setName("state");
User u = new User();
u.setId("1");
u.setGroup(g);
request.setAttribute("user",u);
前台:
<%taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %>
输出普通文本
<bean:write name="aa" /> 输入 hello Struts
输出html片段
<bean:write name="bb" /> 输出 <font color='red'>hello</font>"
<bean:write name="bb" filter="false" /> 输出红色字体的 hello filter 默认值为true,即,原样输出,false表示解析html标记
格式化日期
<bean:write name="cc" format="yyyy-MM-dd HH:mm:ss" /> 输出 2010-10-14 14:49:23
输出数字
<bean:write name="dd" /> 输出 12345.45
格式化数字
<bean:write name="dd" format="###,###.####" /> 输出 12,345.45
<bean:write name="dd" format="###,###.0000" /> 输出 12,345.4500
取对象属性
<bean:write name="user"> 现在拿到的是user对象
<bean:write name="user" property="id"> 现在拿到的是user对象的id属性的值
<bean:write name="user" property="group"> 现在拿到的是group对象
<bean:write name="user" property="group.name"> 现在拿到的是group对象的name值了
<input type="text" value="<bean:write name="user" property="id">" /> 此句是正确的,因为<bean:write name="user" property="id"> 在服务器端就已经解析为一个确定的值了,其他部分是在浏览器端执行的,所以填写到value后就是一个确定的值。
<logic:*>讲解
后台:
request.setAttribute("attr2","");
request.setAttribute("sttr3",new ArrayList());
前台:
<% taglib prefix="logic" uri="http://jakarta.apache.org/struts/tags-logic" %>
<logic:empty name="attr1"> 判断attr1对象是否为空
attr1为空<br>
</logic:empty>
<logic:notEmpty name="attr1">
attr1不为空<br>
</logic:notEmpty>
<logic:present name="attr1"> 判断attr1对象是否存在
attr1存在<br>
</logic:present>
<logic:notPresent name="attr1">
attr1不存在<br>
</logic:notPresent>
<logic:empty name="attr2"> 判断attr2对象是否为空
attr2为空<br>
</logic:empty>
<logic:notEmpty name="attr2">
attr2不为空<br>
</logic:notEmpty>
<logic:present name="attr2"> 判断attr2对象是否存在
attr2存在<br
<logic:present>
<logic:notPresent name="attr2">
attr2不存在<br>
<logic:notPresent>
<logic:empty name="attr3"> 判断attr3对象是否为空
attr3为空<br>
</logic:empty>
<logic:notEmpty name="attr3">
attr3不为空<br>
</logic:notEmpty>
<logic:present name="attr3"> 判断attr2对象是否存在
attr3存在<br
<logic:present>
<logic:notPresent name="attr3"> 判断的是集合中的内容
attr3不存在<br>
<logic:notPresent>
结果:
attr1为空
attr1不存在
attr2为空
attr2存在
attr3为空
attr3存在
注意:如果后台设置了 request.setAttribute("attr1",null);那么输入结果不变
后台:
Group g = new Group();
g.setName("state");
List userList = new ArrayList();
for(int i=0;i<10;i++){
User u = new User();
u.setName("li");
u.setId(i);
u.setGroup(g);
userList.add(u);
}
request.setAttribute("list",userList);
前台:
<% taglib prefix="logic" uri="http://jakarta.apache.org/struts/tags-logic"%>
<%taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %>
<logic:empty name="list">
没有符合的数据
</logic:empty>
<logic:notEmpty name="list">
<logic:iterate id="u" name="list">
<bean:write name="u" property="name" /> //<bean:write name="u" /> 拿到的是user对象
<bean:write name="u" property="id" />
<bean:write name="u" property="group.name">
<logic:iterate>
</logic:notEmpty>