我是靠谱客的博主 如意抽屉,这篇文章主要介绍Struts2-Struts2标签,现在分享给大家,希望可以做个参考。

引入标签

复制代码
1
<%@taglib prefix="s" uri="/struts-tags"%>

一、通用标签(Generic Tag)

1、数据标签

  • action配置
复制代码
1
2
3
<action name="Data_label" class="com.pb06.demo01.Tags"> <result>/jsp/06_Struts2标签/01_数据标签.jsp</result> </action>
  • action类代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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; } }
  • 页面代码(重点)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<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配置
复制代码
1
2
3
<action name="Control_tag" class="com.pb06.demo02.HouseAction"> <result>/jsp/06_Struts2标签/02_控制标签.jsp</result> </action>
  • action类代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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; } }
  • 页面代码(重点)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<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配置
复制代码
1
2
3
<action name="UI_Tags01" class="com.pb06.demo03.Provinces"> <result>/jsp/06_Struts2标签/03_UI标签01.jsp</result> </action>
  • action代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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; } }
  • 页面代码(重点)
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<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标签内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部