转自:http://blog.****.net/u012561176/article/details/44986183
1.因为缺少了个例子,大家看文字和表格也看不出什么效果来,所以今天来介绍一个例子,用Struts2中UI标签的表单标签实现一个个人信息的表单,但是有些表单标签没有演示出来,大家可以根据我介绍UI标签的表单标签来进行学习,这里只是给个例子。
2.首先新建一个Struts2项目,项目名为PersonMessage,项目的结构图如下:

(1).首先新建一个jsp页面,页面名为form1.jsp,改变编码方式为utf-8,因为我们这里使用的是Struts2的UI标签,不是HTML的标签,所以必须用taglib 编译指令导入Struts2的标签库定义,其中必须在JSP页面的顶部加上这行代码:
-
<%@ taglib uri="/struts-tags" prefix="s"%>
其中form1.jsp页面完整代码如下:
-
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
-
<%@ taglib uri="/struts-tags" prefix="s"%>
-
<%
-
String path = request.getContextPath();
-
String basePath = request.getScheme() + "://"
-
+ request.getServerName() + ":" + request.getServerPort()
-
+ path + "/";
-
%>
-
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
<html>
-
<head>
-
-
</head>
-
-
<body>
-
<center>
-
<s:form action="personAction" namespace="/">
-
<s:textfield name="username" label="用户名" />
-
<br />
-
<s:password name="password" label="密码" />
-
<br />
-
<s:textfield name="truename" label="真实姓名" />
-
<br />
-
<!-- 使用字符串集合生成单选框 -->
-
<s:radio list="{'男','女'}" name="sex" label="性别"></s:radio>
-
<br />
-
<s:select list="#{'高中':'高中','大学':'大学','硕士':'硕士','博士':'博士'}"
-
name="education" label="最高学历"></s:select>
-
<br />
-
<!-- 使用Map对象来生成doubleselect -->
-
<s:set name="pc"
-
value="#{'广东省':{'广州市','深圳市','珠海市','东莞市','中山市'},'江苏省':{'南京市','苏州市','扬州市' },'河南省':{'郑州市','洛阳市','开封市','南阳市'}}" />
-
<s:doubleselect doubleList="#pc[top]" list="#pc.keySet()"
-
doubleName="city" label="所在省份的城市" name="province"></s:doubleselect>
-
<br />
-
<s:checkboxlist list="{'编程','音乐','写技术博客','玩游戏'}" name="favorite"
-
label="个人爱好"></s:checkboxlist>
-
<br />
-
<s:combobox list="{'苹果','香蕉','梨','草莓','西瓜','菠萝','芒果','橘子'}"
-
label="喜欢吃的水果" name="fruit" value="苹果"></s:combobox>
-
<s:updownselect
-
list="#{'C语言':'C语言','Java':'Java','C#':'C#','c++':'c++','HTML':'HTML','R语言':'R语言'}"
-
label="你喜欢的编程语言" name="language" selectAllLabel="全选"
-
moveUpLabel="上移" moveDownLabel="下移"></s:updownselect>
-
-
<s:submit type="button" align="left" value="提交"></s:submit>
-
</s:form>
-
</center>
-
</body>
-
</html>
在上面这个form1.jsp页面中使用<s:form>标签,并使用表单元素标签创建一些表单元素,以供用户输入或选择相关的内容,用<s:textfield>标签完成用户名和真实姓名的输入,用<s:password>标签完成密码的输入,用<s:radio>标签完成性别的选择,用<s:select>标签完成最高学历的选择,用<s:doubleselect>标签完成省份的城市的选择,用<checkboxlist>标签完成个人爱好的选择,用<s:combobox>标签完成喜欢吃的水果的选择,用<s:updownselect>标签完成喜欢的编程语言的选择,用<s:submit>标签提交,提交到personAction这个action去。
(2).接着新建一个PersonFormAction类,声明一些属性,并分别为这些属性创建get和set方法,重写ActionSupport类的execute()方法,完整代码如下:
(3).打开项目目录的struts.xml配置文件,向该文件添加PersonFormAction配置,完整代码如下:
-
<?xml version="1.0" encoding="UTF-8" ?>
-
<!DOCTYPE struts PUBLIC
-
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-
"http://struts.apache.org/dtds/struts-2.0.dtd">
-
-
<struts>
-
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
-
<constant name="struts.devMode" value="true"></constant>
-
<constant name="struts.custom.i18n.resources" value="globalMessages"></constant>
-
<package name="person" namespace="/" extends="struts-default">
-
<action name="personAction" class="com.gk.action.PersonFormAction">
-
<result>/personinfo.jsp</result>
-
</action>
-
</package>
-
</struts>
(4).接着在WebRoot目录下,新建一个personinfo.jsp页面,修改编码方式为utf-8,用来提交表单到action之后获得表单输入的内容,即获取action的属性值,完整代码如下:
-
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
-
<%@ taglib uri="/struts-tags" prefix="s"%>
-
<%
-
String path = request.getContextPath();
-
String basePath = request.getScheme() + "://"
-
+ request.getServerName() + ":" + request.getServerPort()
-
+ path + "/";
-
%>
-
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
<html>
-
<head>
-
<base href="<%=basePath%>">
-
-
<title>My JSP 'personinfo.jsp' starting page</title>
-
-
<meta http-equiv="pragma" content="no-cache">
-
<meta http-equiv="cache-control" content="no-cache">
-
<meta http-equiv="expires" content="0">
-
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
-
<meta http-equiv="description" content="This is my page">
-
<!--
-
<link rel="stylesheet" type="text/css" href="styles.css">
-
-->
-
-
</head>
-
-
<body>
-
用户名为:
-
<s:property value="username" />
-
<br /> 密码为:
-
<s:property value="password" />
-
<br /> 真实姓名为:
-
<s:property value="truename" />
-
<br /> 性别为:
-
<s:property value="sex" />
-
<br /> 最高学历为:
-
<s:property value="#parameters.education" />
-
<br /> 所在地为:
-
<s:property value="province" />
-
<s:property value="city" />
-
<br /> 个人爱好为:
-
<s:property value="favorite" />
-
<br/>喜欢吃的水果为:
-
<s:property value="fruit"/>
-
<br/>喜欢的编程语言是:
-
<s:property value="#parameters.language"/>
-
</body>
-
</html>
其中如果在使用表单标签,使用#{}这种方式赋值的话,获取属性时可以使用#parameters.属性名。
(5).通过上面4步代码的编写,就完成了个人信息表单的创建,并可以获得在表单相应输入的内容,接着部署这个项目到Tomcat服务器上,开启Tomcat服务器,在地址栏输入相应的地址后,如下图所示:

就出现了上图这个界面,可以由我们自己输入和选择其中的内容,我随便输入内容和选择后,如下图所示:

再点击提交按钮,就可以获取到输入和选择的内容:

3.以上内容仅供大家爱学习参考,写得不好,请见谅,如有错误,请指出,谢谢!