`

十步走完一个小的Struts2实例

阅读更多
初学Struts2,先实践一个小的例子。
一、先建立一个工程,引入相应的包。
二、编写相应的前台jsp程序。使用表单发送给action。
<%@page contentType ="text/html; charset=gbk"%>
<%@taglib prefix = "s" uri = "/struts-tags"%>
<html>
	<head>
	<title>注册</title>
	<script type = "text/javascript" >
	function removeDefault(){
		with(event.srcElement){
			if(value == defaultValue){
				value ="";
			}	
		}
	}
	function remainValue(){
		with(event.srcElement){
			if(value==""){
				value = defaultValue;
			}
		}
	}
	</script>
	</head>
	<body>
		<form action = "register.action" method = "post">
		<s:fielderror/>
		<table>
			<tr >
				<td colspan = 2 align = "center">
					注册界面
				</td>
			</tr>
			<tr>
				<td>用户名:</td>
				<td><input type = "text" value = "请输入用户名" name = "user.userName"onfocus = "removeDefault()" onblur = "remainValue()"></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type = "password"  name = "user.passWord" onfocus = "removeDefault()" onblur = "remainValue()"></td>
			</tr>
			<tr>
				<td>确认密码:</td>
				<td><input type = "password"  name = "user.rePassWord" onfocus = "removeDefault()" onblur = "remainValue()"></td>
			</tr>
			<tr>
				<td>
					<s:submit value = "注册" align = "center"></s:submit>
				</td>
			</tr>
			<tr>
				<td>
					<s:reset value = "重置" align ="center"></s:reset>
				</td>
			</tr>
		</table>
		</form>
	</body>
</html>

三、编写相应的javabean程序。
package com.strutsTest.bean;
public class UserBean {
	String userName = "";
	String passWord = "";
	String rePassWord = "";
	public UserBean(){
		
	}
	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 getRePassWord() {
		return rePassWord;
	}
	public void setRePassWord(String rePassWord) {
		this.rePassWord = rePassWord;
	}
	
}


四、在Struts的业务控制器Action中编写使用jsp表单和javabean来进行的一些操作。

package com.strutsTest.struts.action;
import com.opensymphony.xwork2.ActionSupport;
import com.strutsTest.bean.*;
import javax.servlet.http.HttpServletRequest; 
import org.apache.struts2.ServletActionContext; 
public class MyStrutsTest extends ActionSupport{
	private UserBean user;
	public String execute(){
		if(!user.getPassWord().equals(user.getRePassWord())){
			this.addFieldError("password", "请输入相同的密码值");
			return "input";
		}else{
			HttpServletRequest request = ServletActionContext.getRequest();
			request.setAttribute("user", user);
			return SUCCESS;
		}
	}
	public UserBean getUser() {
		return user;
	}
	public void setUser(UserBean user) {
		this.user = user;
	}
	
	
}

五、在web.xml中编写ActionContextCleanUp和FilterDispatcher核心过滤器,以便由他们引用action
<filter>
  <filter-name>struts-cleanup</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
 </filter>
 <filter>
  <filter-name>struts</filter-name>
  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>struts-cleanup</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <filter-mapping>
  <filter-name>struts</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>


六、在struts.xml中配置Struts2的框架属性
如下
        <?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">
        <!-- 设置Web应用的默认编码集为gbk -->
	<constant name = "struts.i18n.resources" value ="gbk" />
	<!-- 设置Web应用的默认地区为zh_CN	 -->
	<constant name = "struts.locale" value ="zh_CN" />
	<!-- 设置struts2应用的国际化资源文件,多个文件中间可用逗号分隔-->
	<constant name="struts.custom.i18n.resources" value="messageResource"/>
	<!-- 设置Struts应用是否处于开发模式,通常在开发调试阶段设为true,正式上线后设为false -->
	<constant name ="struts.devMode" value = "true"/>
	<!-- 设置Struts2的默认主题为simple -->
	<constant name = "struts.ui.theme" value ="simple"/>

在struts.xml中定义package
<!--继承struts-default包并定义user包,并在该包中配置全局result与全局异常映射-->
	<package name = "user" extends="struts-default">
		<action name ="register" class ="com.strutsTest.struts.action.MyStrutsActionTest">
		<result name="success">/welcome.jsp</result>   
        <result name="input">/register.jsp</result>   
		</action>
	</package>


七、在struts.xml中配置自定义拦截器
八、配置国际化消息
九、配置Struts2的自动检验配置文件:在Action类的相同路径下放置一个XML检验配置文件,并在该配置文件中定义表达各字段的校验规则,校验配置文件的命名遵循这样的格式:Action类名-Action别名-validation.xml,且如上所说要与类在同一包中;

<validators>   
	<field name="user.userName">   
    	<!-- 验证字符串不能为空 -->   
    	<field-validator type="requiredstring">   
         	  <!-- 去空格 -->   
     		<param name="trim">true</param>   
          		<!-- 错误提示信息 -->   
     		<message>用户名不能为空</message>   
    	</field-validator>
    	<field-validator type="stringlength"> 
    		<param name = "minLength">2</param>
    		<param name = "maxLength">20</param>
    		<message>用户名长度应该在2到18字符之间</message>
    	</field-validator>
 	</field>
 	
 	<field name = "user.passWord">
 		<field-validator type = "requiredstring">
 			<param name = "trim">true</param>
 			<message>密码不能为空</message>
 		</field-validator>>
 		<field-validator type ="stringlength">
 			<param name = "minLength">6</param>
 			<param name = "maxLength">18</param>
 		</field-validator>
 	</field>
 </validators> 
       

十、编写相应的注册成功的返回界面
congratulations!${user.userName} <br>  

用strust2标签 ${对象名.属性名}
在jsp中访问Action里的对象属性
分享到:
评论

相关推荐

    struts2实例项目

    struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例struts2简单应用实例

    struts2实例3源码

    Struts2是一个强大的Java Web应用程序框架,用于构建和维护可扩展、结构清晰的MVC(Model-View-Controller)架构的应用程序。这个“Struts2实例3源码”压缩包很可能是为了帮助开发者理解并实践Struts2框架的用法,...

    struts2项目实例

    总的来说,"Struts2项目实例"涵盖了Java web开发中的关键环节,从Action设计、数据库操作、视图展现到框架配置,为我们提供了一个学习和实践Struts2的好起点。通过分析和理解这个实例,开发者可以更好地掌握Struts2...

    struts2经典实例

    `struts2-mailreader-2.0.1.war` 是一个模拟邮件阅读器的实例,展示了Struts2处理表单数据、文件上传、用户认证和授权的使用。它可以帮助开发者理解如何在Struts2中实现用户交互和数据管理。 3. **Struts2 Portlet...

    struts2实例工程

    Struts2是一个强大的MVC(Model-View-Controller)框架,它是Apache软件基金会下的Jakarta项目的一部分,专门用于构建企业级Java web应用程序。Struts2是Struts1的升级版,它结合了WebWork框架的优点,提供了更丰富...

    Eclipse配置一个struts2实例

    Eclipse配置一个struts2实例,struts2配置一个简单的项目

    Struts2典型小实例源代码

    总的来说,"Struts2典型小实例源代码"提供了一个基础的Struts2应用模型,涵盖了Action、配置、视图和拦截器等关键组件。通过深入学习和分析这个实例,开发者可以更好地理解和运用Struts2框架,构建更高效的企业级web...

    struts2实例 自定义过滤器 文件上传下载 登录功能

    Struts2是一个强大的MVC(模型-视图-控制器)框架,被广泛应用于Java Web开发中。本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础...

    Struts2实例 国际化 类型转换 struts标签

    总结起来,这个Struts2实例项目通过整合国际化、类型转换和Struts2标签,构建了一个完整的用户管理系统,展示了如何在实际开发中高效地处理Web请求,实现业务逻辑,并提供多语言支持。这样的练习有助于提升开发者对...

    struts2的简单实例

    接下来,我们将通过一个简单的实例来演示如何使用Struts2: 1. **创建项目结构**:新建一个Java Web项目,包含`src/main/java`(放置Action类)、`src/main/resources`(放置配置文件)和`WebContent`(放置Web资源...

    struts2实例源码1

    在"struts2实例源码1"中,可能会包含一个或多个Action类,这些类负责接收请求、执行相应的业务逻辑并返回结果。 2. **配置文件**:Struts2使用XML配置文件(如struts.xml或struts-default.xml)来定义Action类与URL...

    Struts2项目实例

    总之,"Struts2项目实例"是一个实践性的学习资源,它能够帮助开发者从理论走向实践,深入理解Struts2框架的运作方式,并提升其在实际开发中的应用能力。通过逐步分析和模仿这个实例,学习者能够更好地掌握Struts2,...

    struts2实例 BBS

    在本实例"Struts2实例 BBS"中,我们将深入探讨如何使用Struts2实现一个基本的论坛系统,该系统具备增删改查(CRUD)功能,且不包含冗余或无效代码。以下是对这一实例的详细分析: 首先,我们来看看Struts2框架的...

    struts2实例和详细介绍

    Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-...文档“struts2struts2实例和详细介绍.doc”应该会提供更详细的指导和示例代码,帮助你深入理解和运用Struts2框架。

    struts2实例struts2实例

    struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例struts2实例

    struts2.0实例源码

    struts2.0实例源码(struts2是我写的struts2Deom是我下的资源项目一起给大家) 包括strust2.0的所有知识面,每个点我都写了详细注释 网上是很难找到这样的资料的,这是我个人学习笔记拿出来希望跟大家一起学习...

    struts2实例.zip

    Struts2是一个强大的Java web应用程序框架,用于构建和维护可扩展、易于管理的企业级Web应用。这个"struts2实例.zip"压缩包包含了Struts2框架的实际应用代码,旨在帮助开发者理解和掌握Struts2的核心功能和工作原理...

    struts2实例 学生信息管理系统

    struts2实现的学生信息管理系统 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...

    Struts2+rest简单实例

    在这个"Struts2+rest简单实例"中,开发者创建了一个小型的示例应用,目的是帮助初学者快速理解如何在Struts2框架中集成RESTful服务。以下是这个实例中可能涉及的关键知识点: 1. **Struts2框架基础**:Struts2的...

    struts2登录小实例

    通过这个"struts2login小实例",开发者可以深入了解Struts2的工作原理,掌握如何构建一个基本的MVC应用,并逐步熟悉Struts2的配置、Action、数据校验、结果转发等核心概念。这不仅对初学者有益,也对有经验的开发者...

Global site tag (gtag.js) - Google Analytics