index.jsp
1
<%
@page contentType="text/html; charset=GBK"
%>
2 <% @taglib prefix="s" uri="/struts-tags" %>
3
4 <!--
5 Struts2UI标签的使用:
6 1.使用s:checkboxlist生成多个复选框。
7 2.使用s:combobox生成下拉输入框
8 3.使用s:datetimepicker生成时间选择器
9 4.使用s:doubleselect生成级联下拉列表框
10 5.使用s:radio生成多个单选框
11 6.使用s:token可以添加隐藏的表单域,以防止页面的重复提交操作
12 -->
13
14 < html >
15 <%
16 //用到s:datetimepicker时必加的标签
17 %>
18
19 < s:head />
20 < body >
21 < h3 >
22 Struts2UI标签的使用:使用 s:checkboxlist生成多个复选框。
23
24 </ h3 >
25 < s:form >
26 <%
27 //使用简单的集合(数组)生成复选框,list是静态列表选项
28 %>
29 < s:checkboxlist name ="a" label ="选择图书" labelposition ="top"
30 list ="{'Struts','J2EE','JSP','Hibernate'}" />
31
32 <%
33 //name="包名.DAO类名" id="产生的对象"
34 %>
35 < s:bean name ="com.DAO.BookDAO" id ="bs" />
36
37 <%
38 //1.list="#bs.books" 是产生的对象bs会到BookDAO.java调用getBooks()方法[注意:这里books首字母要小写,BookDAO.java的getBooks()方法要大写]
39 //2.listKey="name" 是复选框的实际取值,向后台发送的数据,listValue="author"是复选框的标签,显示在前台中的信息(label)
40 %>
41 < s:checkboxlist name ="b" label ="选择图书" labelposition ="top"
42 list ="#bs.books" listKey ="name" listValue ="author" />
43
44 <%
45 //使用Map集合生成多个复选框
46 //1.list的# 与{}之间必须有空格
47 //2.'Struts':'2004' 中'Struts'是key(向后台发送的数据);'2004'是value(显示在前台中的信息)
48 %>
49 < s:checkboxlist name ="c" label ="出版日期" labelposition ="top"
50 list ="# {'Java':'2005','JSP':'2006','Struts':'2007','Hibernate':'2008'}"
51 listKey ="key" listValue ="value" ></ s:checkboxlist >
52 < s:submit ></ s:submit >
53 </ s:form >
54 < hr >
55 < h3 >
56 使用s:combobox生成下拉输入框
57 </ h3 >
58 < s:form >
59 <%
60 //使用简单集合生成下拉输入框
61 %>
62 < s:combobox label ="请选择图书" labelposition ="top" theme ="css_xhtml"
63 list ="{'Java','JSP','Struts','Hibernate'}" size ="20" maxlength ="20"
64 name ="book" ></ s:combobox >
65
66 <%
67 //使用后台集合获取相关下拉输入框
68 //1.struts中默认提供四套主题模板,theme="css_xhtml"是其中之一
69 //2.list="#bs.books" 是产生的对象bs会到BookDAO.java调用getBooks()方法[注意:这里books首字母要小写,BookDAO.java的getBooks()方法要大写]
70 //3.listKey="name" 是复选框的实际取值,向后台发送的数据,listValue="author"是复选框的标签,显示在前台中的信息(label)
71 %>
72 < s:combobox label ="请选择" labelposition ="top" theme ="css_xhtml"
73 list ="#bs.books" listKey ="name" listValue ="author" size ="20"
74 maxlength ="20" name ="book1" ></ s:combobox >
75
76 </ s:form >
77 < hr >
78 < h3 >
79 用s:datetimepicker生成时间选择器
80 </ h3 >
81 < s:form theme ="css_xhtml" >
82 <%
83 //1.name:时间组件的id名
84 //2.toggleType:邦定时间
85 //3.value:初始化时间
86 //4.displayFormat:时间显示的样式
87 //5.weekStartsOn:以周的形式显示时间日期
88 //6.type:修改时间选择器的选择内容
89 %>
90
91 (1)日期选择部件,指定toggleType属性,且指定value="today"(即默认选中的是当天的日期.) < br >
92
93 < s:datetimepicker name ="order.date" label ="购买日期" toggleType ="explode"
94 value ="today" />
95
96 (2)日期选择部件,指定了format属性displayFormat="dddd年MM月dd日" < br >
97
98 < s:datetimepicker name ="order.date" label ="购买日期"
99 displayFormat ="dddd年MM月dd日" />
100
101 (3)日期选择部件,指定了weekStartsOn属性,默认以周的形式开始 < br >
102
103 < s:datetimepicker name ="order.date" label ="购买日期"
104 displayFormat ="dddd年MM月dd日" weekStartsOn ="2" />
105 (4)时间选择部分
106 < s:datetimepicker label ="出发日期" name ="start" type ="time" value ="10:20" />
107 </ s:form >
108 < hr >
109 < h3 >
110 使用s:doubleselect生成级联下拉列表框
111 </ h3 >
112 < s:form action ="y" >
113 <%
114 //1.list:用于进行分类的列表
115 //2.doubleList:用于控件联的动显示列表,使用doubleName来记载联动列表的取值
116 //3.doubleList的取值使用:表达式进行判断,top表示分类列表的取值(实际操作中使用动态列表的赋值)
117 %>
118
119 < s:doubleselect label ="请选择图书" list ="{'a','b'}" doubleName ="book"
120 doubleList ="top=='a'?{'Java','Struts','Hibernate','Jsp'}:{'其他选项1','其他选项2'}" />
121 </ s:form >
122 < hr >
123 < h3 > 使用s:radio生成多个单选框 </ h3 >
124 < s:form action ="z" >
125 (1)使用简单的集合(数组)生成多个单选框 < br >
126 < s:radio name ="e" label ="请选择图书" labelposition ="top" list ="{'Java','JSP','Struts','Hibernate'}" />
127
128 (2)使用Map集合生成多个单选框 < br >
129 < s:radio name ="f" label ="出版时间" labelposition ="top" list ="#{'Java':'2005','Jsp':'2006','Struts':'2007','Hibernate':'2008'}" listKey ="key" listValue ="value" />
130 < s:bean name ="lee.BookService" id ="bs" />
131
132 (3)使用集合里放多个JavaBean实例来生成多个单选框 < br >
133 < s:radio name ="g" label ="选择图书" labelposition ="top" list ="#bs.books" listKey ="author" listValue ="name" />
134 </ s:form >
135 < hr >
136 < h3 > 提交表单中s:token可以添加隐藏的表单域,以防止页面的重复提交操作. </ h3 >
137 < s:form >
138 < s:token />
139 </ s:form >
140 </ body >
141 </ html >
2 <% @taglib prefix="s" uri="/struts-tags" %>
3
4 <!--
5 Struts2UI标签的使用:
6 1.使用s:checkboxlist生成多个复选框。
7 2.使用s:combobox生成下拉输入框
8 3.使用s:datetimepicker生成时间选择器
9 4.使用s:doubleselect生成级联下拉列表框
10 5.使用s:radio生成多个单选框
11 6.使用s:token可以添加隐藏的表单域,以防止页面的重复提交操作
12 -->
13
14 < html >
15 <%
16 //用到s:datetimepicker时必加的标签
17 %>
18
19 < s:head />
20 < body >
21 < h3 >
22 Struts2UI标签的使用:使用 s:checkboxlist生成多个复选框。
23
24 </ h3 >
25 < s:form >
26 <%
27 //使用简单的集合(数组)生成复选框,list是静态列表选项
28 %>
29 < s:checkboxlist name ="a" label ="选择图书" labelposition ="top"
30 list ="{'Struts','J2EE','JSP','Hibernate'}" />
31
32 <%
33 //name="包名.DAO类名" id="产生的对象"
34 %>
35 < s:bean name ="com.DAO.BookDAO" id ="bs" />
36
37 <%
38 //1.list="#bs.books" 是产生的对象bs会到BookDAO.java调用getBooks()方法[注意:这里books首字母要小写,BookDAO.java的getBooks()方法要大写]
39 //2.listKey="name" 是复选框的实际取值,向后台发送的数据,listValue="author"是复选框的标签,显示在前台中的信息(label)
40 %>
41 < s:checkboxlist name ="b" label ="选择图书" labelposition ="top"
42 list ="#bs.books" listKey ="name" listValue ="author" />
43
44 <%
45 //使用Map集合生成多个复选框
46 //1.list的# 与{}之间必须有空格
47 //2.'Struts':'2004' 中'Struts'是key(向后台发送的数据);'2004'是value(显示在前台中的信息)
48 %>
49 < s:checkboxlist name ="c" label ="出版日期" labelposition ="top"
50 list ="# {'Java':'2005','JSP':'2006','Struts':'2007','Hibernate':'2008'}"
51 listKey ="key" listValue ="value" ></ s:checkboxlist >
52 < s:submit ></ s:submit >
53 </ s:form >
54 < hr >
55 < h3 >
56 使用s:combobox生成下拉输入框
57 </ h3 >
58 < s:form >
59 <%
60 //使用简单集合生成下拉输入框
61 %>
62 < s:combobox label ="请选择图书" labelposition ="top" theme ="css_xhtml"
63 list ="{'Java','JSP','Struts','Hibernate'}" size ="20" maxlength ="20"
64 name ="book" ></ s:combobox >
65
66 <%
67 //使用后台集合获取相关下拉输入框
68 //1.struts中默认提供四套主题模板,theme="css_xhtml"是其中之一
69 //2.list="#bs.books" 是产生的对象bs会到BookDAO.java调用getBooks()方法[注意:这里books首字母要小写,BookDAO.java的getBooks()方法要大写]
70 //3.listKey="name" 是复选框的实际取值,向后台发送的数据,listValue="author"是复选框的标签,显示在前台中的信息(label)
71 %>
72 < s:combobox label ="请选择" labelposition ="top" theme ="css_xhtml"
73 list ="#bs.books" listKey ="name" listValue ="author" size ="20"
74 maxlength ="20" name ="book1" ></ s:combobox >
75
76 </ s:form >
77 < hr >
78 < h3 >
79 用s:datetimepicker生成时间选择器
80 </ h3 >
81 < s:form theme ="css_xhtml" >
82 <%
83 //1.name:时间组件的id名
84 //2.toggleType:邦定时间
85 //3.value:初始化时间
86 //4.displayFormat:时间显示的样式
87 //5.weekStartsOn:以周的形式显示时间日期
88 //6.type:修改时间选择器的选择内容
89 %>
90
91 (1)日期选择部件,指定toggleType属性,且指定value="today"(即默认选中的是当天的日期.) < br >
92
93 < s:datetimepicker name ="order.date" label ="购买日期" toggleType ="explode"
94 value ="today" />
95
96 (2)日期选择部件,指定了format属性displayFormat="dddd年MM月dd日" < br >
97
98 < s:datetimepicker name ="order.date" label ="购买日期"
99 displayFormat ="dddd年MM月dd日" />
100
101 (3)日期选择部件,指定了weekStartsOn属性,默认以周的形式开始 < br >
102
103 < s:datetimepicker name ="order.date" label ="购买日期"
104 displayFormat ="dddd年MM月dd日" weekStartsOn ="2" />
105 (4)时间选择部分
106 < s:datetimepicker label ="出发日期" name ="start" type ="time" value ="10:20" />
107 </ s:form >
108 < hr >
109 < h3 >
110 使用s:doubleselect生成级联下拉列表框
111 </ h3 >
112 < s:form action ="y" >
113 <%
114 //1.list:用于进行分类的列表
115 //2.doubleList:用于控件联的动显示列表,使用doubleName来记载联动列表的取值
116 //3.doubleList的取值使用:表达式进行判断,top表示分类列表的取值(实际操作中使用动态列表的赋值)
117 %>
118
119 < s:doubleselect label ="请选择图书" list ="{'a','b'}" doubleName ="book"
120 doubleList ="top=='a'?{'Java','Struts','Hibernate','Jsp'}:{'其他选项1','其他选项2'}" />
121 </ s:form >
122 < hr >
123 < h3 > 使用s:radio生成多个单选框 </ h3 >
124 < s:form action ="z" >
125 (1)使用简单的集合(数组)生成多个单选框 < br >
126 < s:radio name ="e" label ="请选择图书" labelposition ="top" list ="{'Java','JSP','Struts','Hibernate'}" />
127
128 (2)使用Map集合生成多个单选框 < br >
129 < s:radio name ="f" label ="出版时间" labelposition ="top" list ="#{'Java':'2005','Jsp':'2006','Struts':'2007','Hibernate':'2008'}" listKey ="key" listValue ="value" />
130 < s:bean name ="lee.BookService" id ="bs" />
131
132 (3)使用集合里放多个JavaBean实例来生成多个单选框 < br >
133 < s:radio name ="g" label ="选择图书" labelposition ="top" list ="#bs.books" listKey ="author" listValue ="name" />
134 </ s:form >
135 < hr >
136 < h3 > 提交表单中s:token可以添加隐藏的表单域,以防止页面的重复提交操作. </ h3 >
137 < s:form >
138 < s:token />
139 </ s:form >
140 </ body >
141 </ html >
相关:
1
web.xml
2 <? xml version="1.0" encoding="UTF-8" ?>
3 < web-app id ="WebApp_ID" version ="2.4"
4 xmlns ="http://java.sun.com/xml/ns/j2ee"
5 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
7 < display-name > Struts2Hello </ display-name >
8 < filter >
9 < filter-name > struts2 </ filter-name >
10 < filter-class >
11 org.apache.struts2.dispatcher.FilterDispatcher
12 </ filter-class > <!-- 以过虑器的形式出现 -->
13 </ filter >
14 < filter-mapping >
15 < filter-name > struts2 </ filter-name >
16 < url-pattern > /* </ url-pattern > <!-- 过虑所有内容 -->
17 </ filter-mapping >
18 < welcome-file-list >
19 < welcome-file > index.html </ welcome-file >
20 < welcome-file > index.htm </ welcome-file >
21 < welcome-file > index.jsp </ welcome-file >
22 < welcome-file > default.html </ welcome-file >
23 < welcome-file > default.htm </ welcome-file >
24 < welcome-file > default.jsp </ welcome-file >
25 </ welcome-file-list >
26 </ web-app >
27
2 <? xml version="1.0" encoding="UTF-8" ?>
3 < web-app id ="WebApp_ID" version ="2.4"
4 xmlns ="http://java.sun.com/xml/ns/j2ee"
5 xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
6 xsi:schemaLocation ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
7 < display-name > Struts2Hello </ display-name >
8 < filter >
9 < filter-name > struts2 </ filter-name >
10 < filter-class >
11 org.apache.struts2.dispatcher.FilterDispatcher
12 </ filter-class > <!-- 以过虑器的形式出现 -->
13 </ filter >
14 < filter-mapping >
15 < filter-name > struts2 </ filter-name >
16 < url-pattern > /* </ url-pattern > <!-- 过虑所有内容 -->
17 </ filter-mapping >
18 < welcome-file-list >
19 < welcome-file > index.html </ welcome-file >
20 < welcome-file > index.htm </ welcome-file >
21 < welcome-file > index.jsp </ welcome-file >
22 < welcome-file > default.html </ welcome-file >
23 < welcome-file > default.htm </ welcome-file >
24 < welcome-file > default.jsp </ welcome-file >
25 </ welcome-file-list >
26 </ web-app >
27
1
struts.xml
2 <! DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd" >
5 < struts >
6 < include file ="struts-default.xml" /> <!-- 使用缺省的struts的配置文件 -->
7
8 < package name ="TagDemo" extends ="struts-default" > <!-- 包空间 admin 继承 struts-default -->
9 < action name ="*" > <!-- 试用通配符action的描述 -->
10 < result > /{1}.jsp </ result > <!-- {1}与*通配符的内容相对应,即action名={1}.jsp -->
11 </ action >
12 </ package >
13 </ struts >
14
2 <! DOCTYPE struts PUBLIC
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
4 "http://struts.apache.org/dtds/struts-2.0.dtd" >
5 < struts >
6 < include file ="struts-default.xml" /> <!-- 使用缺省的struts的配置文件 -->
7
8 < package name ="TagDemo" extends ="struts-default" > <!-- 包空间 admin 继承 struts-default -->
9 < action name ="*" > <!-- 试用通配符action的描述 -->
10 < result > /{1}.jsp </ result > <!-- {1}与*通配符的内容相对应,即action名={1}.jsp -->
11 </ action >
12 </ package >
13 </ struts >
14
1
Book.java
2 package com.pojo;
3
4 import java.io.Serializable;
5
6 /** */ /**
7 * @author Administrator
8 * @version 2008 08 17
9 */
10 public class Book implements Serializable {
11 /** *//**
12 *
13 */
14 private static final long serialVersionUID = -4565886033215350973L;
15 private String name;
16 private String author;
17
18 public Book() {
19
20 }
21
22 public Book(final String name, final String author) {
23 super();
24 this.name = name;
25 this.author = author;
26 }
27
28 public String getName() {
29 return name;
30 }
31
32 public void setName(final String name) {
33 this.name = name;
34 }
35
36 public String getAuthor() {
37 return author;
38 }
39
40 public void setAuthor(final String author) {
41 this.author = author;
42 }
43
44}
45
2 package com.pojo;
3
4 import java.io.Serializable;
5
6 /** */ /**
7 * @author Administrator
8 * @version 2008 08 17
9 */
10 public class Book implements Serializable {
11 /** *//**
12 *
13 */
14 private static final long serialVersionUID = -4565886033215350973L;
15 private String name;
16 private String author;
17
18 public Book() {
19
20 }
21
22 public Book(final String name, final String author) {
23 super();
24 this.name = name;
25 this.author = author;
26 }
27
28 public String getName() {
29 return name;
30 }
31
32 public void setName(final String name) {
33 this.name = name;
34 }
35
36 public String getAuthor() {
37 return author;
38 }
39
40 public void setAuthor(final String author) {
41 this.author = author;
42 }
43
44}
45
1
BookDAO.java
2 package com.DAO;
3
4 import com.pojo.Book;
5
6 /** */ /**
7 * @author ∪∩BUG E-mail: [email protected]
8 * @version Aug 17, 2008 11:29:49 PM 类说明
9 */
10
11 public class BookDAO {
12 //业务方法
13 public Book[] getBooks() {
14 return new Book[] { new Book("a", "Struts"), new Book("b", "JSP"),
15 new Book("c", "J2EE"), new Book("d", "Hibernate") };
16 }
17}
18
2 package com.DAO;
3
4 import com.pojo.Book;
5
6 /** */ /**
7 * @author ∪∩BUG E-mail: [email protected]
8 * @version Aug 17, 2008 11:29:49 PM 类说明
9 */
10
11 public class BookDAO {
12 //业务方法
13 public Book[] getBooks() {
14 return new Book[] { new Book("a", "Struts"), new Book("b", "JSP"),
15 new Book("c", "J2EE"), new Book("d", "Hibernate") };
16 }
17}
18