您的位置:首页 > 编程语言 > Java开发

Struts2中UI标签之表单标签的一个例子

2015-04-16 17:51 267 查看
1.最近写了一篇文章,介绍了一下Struts2中UI标签的表单标签,文章地址为:/article/1365996.html

因为缺少了个例子,大家看文字和表格也看不出什么效果来,所以今天来介绍一个例子,用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()方法,完整代码如下:

package com.gk.action;

import com.opensymphony.xwork2.ActionSupport;

public class PersonFormAction extends ActionSupport {
	private String username;// 声明用户姓名属性
	private String password;// 声明密码属性
	private String truename;// 声明真实姓名属性
	private String sex;// 声明性别属性
	private String education;// 声明学历属性
	private String province;// 声明省份属性
	private String city;// 声明城市属性
	private String favorite;// 声明爱好属性
	private String fruit;// 声明喜欢吃的水果属性
	private String language;// 声明你喜欢的编程语言

	/*
	 * 为上面这些属性创建set和get方法
	 */
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getTruename() {
		return truename;
	}

	public void setTruename(String truename) {
		this.truename = truename;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getEducation() {
		return education;
	}

	public void setEducation(String education) {
		this.education = education;
	}

	public String getProvince() {
		return province;
	}

	public void setProvince(String province) {
		this.province = province;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getFavorite() {
		return favorite;
	}

	public void setFavorite(String favorite) {
		this.favorite = favorite;
	}

	public String getFruit() {
		return fruit;
	}

	public void setFruit(String fruit) {
		this.fruit = fruit;
	}

	public String getLanguage() {
		return language;
	}

	public void setLanguage(String language) {
		this.language = language;
	}

	/**
	 * 重写ActionSupport类的execute()方法
	 */
	public String execute() {
		return SUCCESS;
	}
}


(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.以上内容仅供大家爱学习参考,写得不好,请见谅,如有错误,请指出,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: