概述
引入标签
<%@taglib prefix="s" uri="/struts-tags"%>
一、通用标签(Generic Tag)
1、数据标签
- action配置
<action name="Data_label" class="com.pb06.demo01.Tags">
<result>/jsp/06_Struts2标签/01_数据标签.jsp</result>
</action>
- action类代码
public class Tags extends ActionSupport {
private Date currentDate;
private String name;
@Override
public String execute() throws Exception {
currentDate = new Date();
name = "王五";
return SUCCESS;
}
public Date getCurrentDate() {
return currentDate;
}
public void setCurrentDate(Date currentDate) {
this.currentDate = currentDate;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 页面代码(重点)
<body>
<!-- 输出值栈和Stack Context -->
<!-- value:用来获取值的OGNL表达式
default:value属性为空时输出此内容
escapeHtml:是否转义HTML,默认true -->
<s:property value="'<hr/>'" default="当空值时输出这个" escapeHtml="false"/>
<!-- 查看值栈及Stack Context -->
<s:debug></s:debug>
<!-- 格式化输出一个日期 -->
<s:date name="currentDate" format="yyyy-MM-dd HH:mm:ss"/>
<p/>
<!-- 定义变量并赋值 -->
<!-- var:变量名
value:变量值
scope:作用域 -->
<s:set var="vipname" value="name" scope="session"></s:set>
<s:property value="#session.vipname"/>
<p/>
<!-- 超链接和URL地址 -->
<s:url value="http://www.baidu.com">在页面上输出百度网址</s:url>
<br/>
<s:url value="http://www.baidu.com" var="url">把百度网址存入变量url中
<!-- 参数标签 -->
<!-- value值如果是字符串要加引号
这样url地址是:'http://www.baidu.com?str=abc'-->
<s:param name="str" value="'abc'"></s:param>
</s:url>
<br/>
<!-- href属性的值默认是字符串常量,如果使用OGNL表达式,则需要把表达式放在%{}中 -->
<s:a href="%{#url}">百度</s:a>
<%-- 和<jsp:include>一样都是动态包含,都是被包含的页面先生成HTML在被包含进来
--%>
<s:include value=""></s:include>
</body>
- 页面输出结果
2、控制标签
- action配置
<action name="Control_tag" class="com.pb06.demo02.HouseAction">
<result>/jsp/06_Struts2标签/02_控制标签.jsp</result>
</action>
- action类代码
1、JavaBean
public class Houses {
private String houseId;
private Street street;
private String title;
private Date addDate;
//构造方法及get、set方法略
}
public class Street {
private String streetName;
//构造方法及get、set方法略
}
2、action类
public class HouseAction extends ActionSupport {
private List<Houses> houses;
@Override
public String execute() throws Exception {
houses = new ArrayList<Houses>();
Street s1 = new Street("街道一");
Street s2 = new Street("街道二");
Date date = new Date(1991, 1, 1, 3, 20, 1);
Houses h1 = new Houses("01", s1, "俩室一厅", date);
date = new Date(2000, 4, 1, 5, 20, 1);
Houses h2 = new Houses("02", s2, "三室一厅", date);
houses.add(h1);
houses.add(h2);
return SUCCESS;
}
public List<Houses> getHouses() {
return houses;
}
public void setHouses(List<Houses> houses) {
this.houses = houses;
}
}
- 页面代码(重点)
<body>
<s:set name="score" value="80"></s:set>
<!-- if elseif else -->
<s:if test="#score>=90">
尖子生
</s:if>
<s:elseif test="#score<=60">
普通学生
</s:elseif>
<s:else>
差生
</s:else>
<!-- iterator -->
<table border="1">
<tr>
<td>房屋ID</td>
<td>房屋所处街道</td>
<td>房屋标题</td>
<td>发布时间</td>
</tr>
<!-- value:被循环访问的集合,这个属性的值是个OGNL表达式
var:变量名称,用来引用当前循环访问的集合元素
status:返回当前循环的各种信息
count:集合含有多少个对象
index:正在循环的这一项的索引
even:当前遍历到的对象是否处于列表的偶数索引位置
odd:当前遍历的对象是否处于列表的奇数索引位置 -->
<s:iterator var="houseItor" value="houses" status="status">
<s:if test="#status.even">
<tr bgcolor="yellow">
</s:if>
<s:if test="#status.odd">
<tr bgcolor="gray">
</s:if>
<td><s:property value="#houseItor.houseId"/></td>
<td><s:property value="#houseItor.street.streetName"/></td>
<td><s:property value="houseItor.title"/></td>
<td><s:date name="#houseItor.addDate" format="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</s:iterator>
</table>
</body>
- 页面结果
二、UI标签
- action配置
<action name="UI_Tags01" class="com.pb06.demo03.Provinces">
<result>/jsp/06_Struts2标签/03_UI标签01.jsp</result>
</action>
- action代码
1、JavaBean
public class Province {
private int pid;
private String pname;
//构造方法及get、set方法略
}
2、action
public class Provinces extends ActionSupport {
List<Province> list;
@Override
public String execute() throws Exception {
list = new ArrayList<Province>();
list.add(new Province(1, "江苏省"));
list.add(new Province(2, "山东省"));
return SUCCESS;
}
public List<Province> getList() {
return list;
}
public void setList(List<Province> list) {
this.list = list;
}
}
- 页面代码(重点)
<body>
<!-- form表单 -->
<!-- name:表单的名称
action:处理该表单数据的URL
method:提交方式,一般为get、post -->
<s:form name="" action="" method=""></s:form>
<!-- 单行文本框 -->
<!-- name:文本框名称
value:文本框中显示的文字
maxlength:文本框中的最大字符数
readonly:是否为只读 -->
<s:textfield name="单行文本框" value="这是一个单行文本框" maxlength="20" readonly="true"></s:textfield>
<p/>
<!-- 多行文本域 -->
<!-- name:文本域名称
value:文本域中显示的文字
cols:文本域的宽度,以字符数表示
rows:文本域的高度,以字符行数表示
readonly:是否为只读 -->
<s:textarea name="多行文本域" value="这是一个多行文本域" cols="100" rows="20" readonly="false"></s:textarea>
<p/>
<!-- 表单提交按钮 -->
<s:submit value="提交"></s:submit>
<p/>
<!-- 下拉框 -->
<!-- name:下拉框的名称
list:生成下拉框的集合
listKey:生成的下拉项的value属性
listValue:生成的下拉项显示的文字 -->
<!-- 第一种实现方式 -->
<s:select list="{'第一页','第二页','第三页'}" label="页码"></s:select>
<p/>
<!-- 第二种实现方式 -->
<s:select list="list" name="province" listKey="pid" listValue="pname"></s:select>
</body>
- 输出结果
<s:doubleselect>
联动下拉框参考:联动下拉框代码
三、Ajax标签
struts2提供了一些简单的Ajax,对于复杂的Ajax实现一般采用jQuery+JSON+Struts2一起来实现
- 日历控件示例
- 效果
最后
以上就是如意抽屉为你收集整理的Struts2-Struts2标签的全部内容,希望文章能够帮你解决Struts2-Struts2标签所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复