package lee;
import com.opensymphony.xwork.ModelDriven;
import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.ActionSupport;
import java.util.Map;
/**
* @author yeeku.H.lee kongyeeku@163.com
* @version 1.0
* <br>Copyright (C), 2005-2008, yeeku.H.Lee
* <br>This program is protected by copyright laws.
* <br>Program Name:
* <br>Date:
*/
public class LoginAction extends ActionSupport
{
private String user;
private String pass;
private String tip;
public String getUser()
{
return user;
}
public void setUser(String user)
{
this.user = user;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}
public String getTip()
{
return tip;
}
public void setTip(String tip)
{
this.tip = tip;
}
public String execute() throws Exception
{
if (getUser().equals("scott")
&& getPass().equals("tiger"))
{
setTip(getText("loginSuccess"));
return SUCCESS;
}
else
{
setTip(getText("loginFail"));
return ERROR;
}
}
}
struts 2.0 源码 第三章
需积分: 0 56 浏览量
更新于2008-09-10
收藏 8.8MB RAR 举报
Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会维护。本章将深入探讨Struts 2.0的源码,帮助开发者理解其内部工作机制,提升开发和调试效率。
在Struts 2.0中,核心组件包括Action、Result、Interceptor、ValueStack等。Action是业务逻辑的执行者,它处理用户请求并返回结果。Result负责展示Action执行后的结果,通常与视图层结合。Interceptor是拦截器,提供了一种灵活的方式来增强Action的处理流程,比如日志、权限检查等功能。ValueStack则是一个对象容器,用于存储Action上下文中的数据,方便在视图层进行渲染。
本章将主要关注以下几个关键知识点:
1. **Action类**:Action类是处理用户请求的中心,继承自`com.opensymphony.xwork2.ActionSupport`。开发者可以自定义Action类,实现业务逻辑。ActionSupport提供了默认的错误处理和国际化支持。
2. **Interceptor堆栈**:Struts 2.0通过Interceptor实现AOP(面向切面编程),使得在不修改Action代码的情况下,可以插入额外的功能。常见的Interceptor有Params(参数校验)、Prepare(预处理)、Validation(验证)、ExecuteResult(执行结果)等。开发者可以通过配置struts.xml来定制Interceptor的顺序和组合。
3. **ValueStack**:ValueStack是Struts 2.0中的一个重要概念,它是一个Ognl(Object-Graph Navigation Language)表达式上下文。所有的Action实例和Action上下文中的对象都会被放入ValueStack,使得视图层可以通过OGNL表达式直接访问这些对象。
4. **结果类型(Result Type)**:Result表示Action执行后如何展示结果,不同的结果类型对应不同的展现方式,如dispatcher(转发到JSP页面)、stream(流式输出,如下载文件)、redirect(重定向)等。
5. **配置文件struts.xml**:它是Struts 2.0的核心配置文件,用于定义Action、Interceptor、结果类型等。通过它可以控制整个应用的行为。
6. **插件机制**:Struts 2.0拥有强大的插件系统,允许开发者扩展其功能,如Tiles插件用于布局管理,JSON插件支持JSON数据的处理。
7. **ActionContext**:ActionContext封装了当前请求的上下文信息,包括session、request、response、ValueStack等,是Action与其他组件交互的重要桥梁。
8. **异常处理**:Struts 2.0提供了全局异常处理机制,通过全局异常映射(Global Exception Mapping)可以在发生异常时统一处理。
9. **拦截器链的执行流程**:每个Action执行前,会按照配置的顺序依次调用Interceptor,执行完后再反向调用。如果某个Interceptor返回“false”,则中断后续的Interceptor执行。
10. **Struts 2.0与Spring的整合**:Struts 2.0可以通过Spring插件实现与Spring框架的无缝集成,利用Spring的依赖注入(DI)和管理Bean的能力。
深入学习Struts 2.0的源码,有助于开发者更好地理解框架的工作原理,从而更高效地开发和维护Web应用程序。在分析源码时,可以重点关注上述知识点,并结合具体的代码实例进行实践。通过03目录下的文件,你可以逐步探索并实践这些概念。