转自:
http://blog.csdn.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 />
-
- <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">
-
-
-
-
- </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.以上内容仅供大家爱学习参考,写得不好,请见谅,如有错误,请指出,谢谢!