Struts的标签库
-熟练掌握逻辑标签的使用
-熟练掌握UI标签的使用
-熟练掌握在Struts2的标签中使用OGNL表达式
标签
为什么使用标签?
生成页面效果
简化功能的呈现
剥离页面中的逻辑代码
便于美工的维护
作为MVC框架的最重要的两个部分就是控制器和视图,视图部分主要通过标签来实现。
Struts2的标签库基于OGNL实现,相比于Struts1的标签库区别主要在以下几点:
(1)基于OGNL实现的Struts2标签对于集合、数组的访问更加强大。
(2)所有标签类别统一集中在一个库中
(3)整合了DOJO的支持,页面呈现更丰富。
(4)提供了Ajax的支持
(5)不依赖于表现层技术
Struts2标签从功能上看主要分为
逻辑标签
UI标签
使用Struts2标签
<%@taglib prefix="s" uri="/struts-tags" %>
逻辑标签
(1)property标签
用于使用OGNL表达式输出数据
例如:访问context中session的数据
<s:property value="#session.loginUser.userName"/>
访问valueStack中Action的属性
<s:property value="userName"/>
attr表示从request、session、application查找作用域中的数据
<s:property value="#attr.msg"/>
(2)if标签、esle标签
if标签用于条件判断
esle标签必须结合if标签使用,表示没有满足的情况
<!-- if标签用于条件判断 -->
<s:if test="#session.loginUser==null">
<a href="#">Login</a>
</s:if>
<s:else>
欢迎<s:property value="#session.loginUser.userName"/>登陆
</s:else>
(3)set标签
用来在context中添加一个键值对
var :写入contextValue中的键
value:写入contextValue中的值,通过OGNL获取,如果值为基本数据类型通过单引号写入
<s:set var="map" value="#{'a':'A','b':'B'}"></s:set>
(4)iterator标签
用来迭代集合
var:写入contextValue中的键
value:迭代的集合或数组使用OGNL获取
status:每个元素的状态
<s:iterator var="str" value="#list" status="status">
${}status.index+1}${str}<br/>
</s:itertor>
用于将多个集合拼成一个集合,需要结合<s:param>子标签
var:写入contextValue中的键
<s:append var="newList">
<s:param value="#list1"></s:param>
<s:param value="#list2"></s:param>
<s:/append>
<s:iterator val="str" value="#newList" status="status">
</s:iterator>
用于对集合进行截取
source:被截取的集合
start:截取的起始索引
count:截取的数量
该标签将产生一个新的集合存入valueStack栈顶,标签运行结束,该集合从栈顶移除,因此需要在标签内进行迭代。
(7)bean标签
用来创建对象
name:创建对象的class
var:写入contextValue中的键
<s:bean name="com.niit.bean.User" var="user">
<s:param name="userName" value="tom">
</s:bean>
<s:property value="#user.userName"/>
(8)date标签
用来格式化时间
name:时间的值
format:格式化字符串
nice:是否显示时间差
Struts2內建4个主题,通过theme属性设定
<s:date name="#date" format="yyyy-MM-dd hh:mm:ss"/>
(9)include标签
动态包含 包含jsp界面或servlet界面
value 包含的页面路径
(10)url标签
产生一个url地址
action:跳转的地址
var:写入contextValue中的键
<s:url var="loginUrl" action="login.action"></s:url>
<s:a href="%{#loginUrl}">login</s:a>
%{} 表示将字符串按照OGNL表达式来读取,使得超链接既能够使用常值,又可以使用变值。
UI标签
simple、xhtml、css_xhtml、ajax
常用的UI标签
form
textfield
password
checkbox
radio
select
。。。。。。
UI标签的使用与普通HTML标签类似,只是标签通过OGNL与Action建立了联系
特殊属性
lable属性 设定标签对应的文字信息,主题不能为simple
name属性 值为OGNL表达式,获取valueStack中的Action属性
特殊标签
checkboxlist标签
用来设定一组复选框
list 使用复选框呈现的集合值,使用OGNL来获取
listValue 通过map集合呈现选项内容的值
listKey 勾选时获取到的map集合中的键