接上!Struts 2 核心技术----搭建过程以及一个实例(1)
三、使用Action类控制导航业务数据
Struts2中Action充当着一个关键角色。它解决了如何把JSP页面上的数据,根据实际开发项目中具体的业务逻辑,来进行处理的问题。
技术要点:
1、如何调用execute方法处理业务逻辑
2、如何处理form表单数据
3、HTTP的session对象在Action的主要使用方式
4、ActionMapping对象配置文件中的处理流程
Eg:
LoginAction是一个负责登录的类,主要处理登录过程中用户属性的处理,如获取用户名和密码。代码如下:
package struts.action;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction
{
//Action类公共私有变量,用来做页面导航标志
private static String FORWORD=null;
//用户名
private String username;
//密码
private String password;
//获取用户名
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 execute()
{
//JSP页面输入的值
username=getUsername();
password=getPassword();
//判断输入是否是空对象或者没输入
if(username!=null && !username.equals("") && password!=null && !password.equals(""))
{
ActionContext.getContext().getSession().put("user", username);
FORWORD="success";
}
else
{
FORWORD="input";
}
return FORWORD;
}
}
Action类映射配置通过struts.xml文件来完成,具体如下:
<action name="Login" class="struts.action.LoginAction">
<result name="input">/login.jsp</result>
<result name="success">/index.jsp</result>
</action>
四、使用ActionSupport进行校验
如果from数据操作有误,比如输入的不是所需要的数据,或者没有输入等原因,action实例执行execute方法前会使用校验进行控制。
技术要点:
1、Action类中ActionSupport使用,以及validate方法的重写实现。
2、属性文件messageResource.properties定义,以及JSP页面上的错误信息如何显示。
3、导航结果显示。
代码如下EG:
LoginAction.java文件
package struts.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
//Action类公共私有变量,用来做页面导航标志
private static String FORWORD=null;
//用户名
private String username;
//密码
private String password;
//获取用户名
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 execute()
{
//JSP页面输入的值
username=getUsername();
password=getPassword();
//判断输入是否是空对象或者没输入
if(username!=null && !username.equals("") && password!=null && !password.equals(""))
{
ActionContext.getContext().getSession().put("user", username);
FORWORD="success";
}
else
{
FORWORD="input";
}
return FORWORD;
}
//校验方法,用来校验输入值为空或者没有输入返回错误信息
public void validate()
{
if(getUsername()==null || getUsername().trim().equals(""))
{
//返回错误信息键值,user.required包含具体内容见messageResource.properties
addFieldError("username",getText("user.required"));
}
if(getPassword()==null || getPassword().trim().equals(""))
{
//返回错误信息键值,user.required包含具体内容见messageResource.properties
addFieldError("password",getText("pass.required"));
}
}
}
Struts.properties文件
#支持本地化的资源文件名定义
struts.custom.i18n.resources=messageResource
messageResource.properties文件
#用key=value格式定义页面上显示的内容
user.required=请输入用户名!
pass.required=请输入密码!
补充,大家遇到问题有两个:
一个是struts2 标签使用异常 The Struts dispatcher cannot be found.-----原因是web.xml配置文件有误!
另一个是字符集问题-----改变下文件的字符!(文件属性)
每天一点点希望对大家有利!
分享到:
相关推荐
在构建SSH框架时,每个框架都扮演着不同的角色,以提供一个高效、可扩展的后端架构。现在我们来详细了解一下搭建SSH框架过程中,这三个关键组件以及所提及的包的作用。 首先,Struts2作为MVC(模型-视图-控制器)...
`struts2-blank-2.0.1.war` 是一个基础模板,用于快速搭建新的Struts2项目。它包含了最小化的配置,帮助开发者了解如何开始一个新项目,以及如何添加自己的Action和视图。 5. **Struts2 Login** `Struts2_Login` ...
Struts2是Java Web开发中的一个非常重要的MVC框架,由Apache软件基金会维护。这个"struts-2.3.24-all"压缩包包含了Struts2框架的完整版本,适用于2.3.24版,是开发人员进行环境搭建和学习实践的理想资源。 Struts2...
在"Struts综合实例--网上论坛BBS系统"中,我们将深入探讨如何使用Struts来开发一个实际的在线讨论平台,即BBS系统。 BBS,全称Bulletin Board System,是一种网络讨论平台,用户可以发布主题、回复他人的话题,进行...
总的来说,SSH2框架搭建实例是一个学习和理解Java Web开发的好素材。通过实践这个项目,开发者可以深入理解如何整合三大框架,以及如何利用它们来实现常见的业务功能。同时,这也是提升数据库操作、MVC设计模式和...
Interceptor是Struts2的一个重要创新,它允许在Action执行前后插入自定义逻辑,如日志、权限检查等。Result则定义了Action执行后的跳转策略,可以是页面、重定向或者其他动作。ValueStack是对象容器,它简化了模型...
本文档将详细介绍如何在Java Web项目中搭建EXTJS和STRUTS2框架,并通过一个简单的实例来展示如何使这两个技术协同工作。EXTJS是一个用于构建交互式前端界面的JavaScript库,而STRUTS2则是Java后端开发中的流行框架之...
本教程将通过一个实例详细介绍如何搭建Struts2环境并创建一个简单的应用。 首先,我们需要准备以下工具和库: 1. **Java Development Kit (JDK)**:确保已安装JDK,并设置好环境变量JAVA_HOME。 2. **Apache ...
Struts2是一个强大的Java web应用程序框架,用于构建和管理MVC(模型-视图-控制器)架构的应用程序。Struts2.3.16.1是该框架的一个特定版本,包含了丰富的功能和修复的安全更新。这个压缩包"Struts-2.3.16.1 -All...
Struts2是一个强大的Java web...通过这个压缩包,你可以搭建一个本地开发环境,进行实践操作,逐步掌握Struts2的使用和配置。同时,结合官方文档,可以深入学习框架的高级特性和最佳实践,提升你的Java web开发技能。
这个压缩包"struts2-spring-hibernate正和所需要的包"包含了在整合这三个框架时必要的库文件,确保开发者可以快速搭建起一个完整的开发环境。 1. **Struts2**: Struts2是一个基于MVC设计模式的Web应用框架,它提供...
这个"struts-2.5.12-all"压缩包包含了Struts2框架的完整集合,版本号为2.5.12,是Struts2发展过程中的一个重要版本。下面将详细解释Struts2框架的核心概念、功能特性以及在实际开发中的应用。 Struts2框架基于Model...
Struts2是一个强大的MVC(Model-View-Controller)框架,它为构建基于J2EE的Web应用程序提供了全面的解决方案。而Spring则是一个全方位的轻量级应用框架,不仅包括了IOC(Inversion of Control)和AOP(Aspect ...
此实验旨在帮助学习者熟悉Struts 2的各种核心组件和技术,包括但不限于标签库、配置文件设置以及与数据库的交互过程。 #### 实验环境搭建 **1. 数据库准备** - 首先,我们需要在MySQL中创建一个名为`XSCJ`的数据库...
Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的MVC(Model-View-Controller)架构的应用程序。它是在原有的Struts 1框架基础上发展起来的,旨在提供更优雅、灵活和可扩展的解决方案。...
1. **快速入门**:这通常是一份简明教程,帮助开发者快速了解Struts2的基本概念和配置,如Action、Result、Interceptor等,并指导如何搭建第一个运行的Struts2应用。 2. **使用文档**:这部分详细介绍了如何在实际...
1. **环境搭建**:首先需要在Eclipse中安装Struts2插件,然后创建一个新的Dynamic Web Project,添加Struts2库依赖。 2. **创建Action类**:编写Action类,继承自Struts2提供的抽象类或实现特定接口,如`...
这个压缩包包含了Struts2框架的核心组件及其依赖,主要用于帮助开发者搭建一个基于Struts2的开发环境。让我们详细了解一下其中的关键组件和用途。 1. **Struts2核心库(struts2-core-2.3.15.3.jar)** 这是Struts2的...
本实例将向您展示如何在MyEclipse环境中搭建并运行一个基础的Struts2项目。 首先,我们需要了解Struts2的基本架构。Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果类型(Results...