`
cnwuzhulin
  • 浏览: 28554 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 中的Action分发

阅读更多

Struts2  中的Action分发


        Struts2中Action不需要单独继承任何的特殊Action,当继承ActionSupport就支持分发,同时validate验证方法也支持分发,实现分发有以下两种形式:
通过Struts2自定义的分发字符(!)完成Action分发:
action格式为:action名!方法名.action。
validate验证方法则为:validate+方法名,分发方法名首字母大写。如:validateLogin()
index.jsp:

<center>
     <s:actionerror name="error"/>
     <s:fielderror />
           <form action="user!login.action" method="post">
               User ID:<input type="text" name="user.userid"/>
                            <br/>${fieldErrors["userid"][0]}<br/>
               PassWord:<input type="password" name="user.password"/>
                            <br/>${fieldErrors["password"][0]}<br/>
                <input type="submit" value="登录"/>
                <input type="reset" value="重置"/>
          </form>
    </center>

--------------------------------------------------------------------------------------------------------------------------
在Action中不再覆写execute方法,直接定义一个login方法,而且该方法返回值类型为String。
UserAction.java:
 public class UserAction extends ActionSupport {
  private User user = new User();
  public User getUser() {
   return user;
  }
  public void setUser(User user) {
   this.user = user;
  }
  public String login() {
   if (user.getUserid().equals("Hello")&& user.getPassword().equals("12345")) {
    ServletActionContext.getRequest().getSession().setAttribute("users", user);
    return "suc";
   }
   super.addActionError("用户名或密码错误!");
   return "input";
  }
  public void validateLogin() {
   if (user.getUserid() == null || user.getUserid().trim().equals("")) {
    super.addFieldError("userid", "用户ID不能为空!");
   }
   if (user.getPassword() == null || user.getPassword().trim().equals("")) {
    super.addFieldError("password", "密码不能为空!");
   }
  }
 }
------------------------------------------------------------------------------------------------------------------------
struts.xml:
 <struts>
  <package name="login" namespace="/" extends="struts-default">
   <action name="user" class="org.wu.struts.action.UserAction">
    <result name="suc">/suc.jsp</result>
    <result name="input">/index.jsp</result>
   </action>
  </package>
 </struts> 
-----------------------------------------------------------------------------------------------------------------------
suc.jsp:
<center>
     欢迎光临,${users.userid}
</center>
-----------------------------------------------------------------------------------------------------------------------
二、任意定义分隔符,通过在struts.xml中的配置来进行分发的处理。

      <form action="user_login.action" method="post">

---------------------------------------------------------------------------------------
 <struts>
  <package name="login" namespace="/" extends="struts-default">
   <action name="user_*" class="org.wu.struts.action.UserAction" method="{1}">
    <!—- {1}表示取得在name中出现的第一个*,填写到method值中  -->
    <result name="suc">/suc.jsp</result>
    <result name="input">/index.jsp</result>
   </action>
  </package>
 </struts> 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Struts2 in action 中文版

    在Struts2中,Action充当控制器的角色,它接收并处理请求,然后根据业务逻辑决定返回哪个视图。 ### Struts2的架构组件 Struts2框架的架构主要由以下几个关键组件构成: 1. **Action**:这是Struts2中最核心的...

    struts2 ,struts2 demo

    OGNL是Struts2中的默认表达式语言,用于在Action和视图之间传递数据。例如,`${user.name}`可以获取User对象的name属性。 **7. Struts2的注解** 除了XML配置外,Struts2还支持使用注解进行配置,使得代码更加简洁。...

    struts2面试题

    Struts2 的主要特点是使用 FilterDispatcher 作为核心控制器,将请求分发到相应的 Action 中。下面是 Struts2 面试题中涉及到的知识点: 1. Struts1 和 Struts2 的区别: Struts1 和 Struts2 是两个不同的框架,...

    Struts2视频教程

    - **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。了解如何编写Action类、设置其属性以及处理请求参数至关重要。 - **Result配置**:Result用于指定Action执行后的结果...

    struts2讲义

    在Struts2中,前端控制器由`StrutsPrepareAndExecuteFilter`扮演,它负责拦截所有请求,并根据配置将请求传递给相应的Action处理。 #### 二、Struts2快速入门 ##### 2.1 安装与配置 1. **下载Struts2开发包** - ...

    struts2小练习

    2. **配置Action**:在struts.xml文件中配置Action,包括Action名称、结果类型和可能的参数映射。 3. **编写视图**:创建JSP页面,展示Action返回的数据。 4. **使用拦截器**:学习如何添加和配置拦截器,了解其工作...

    struts2-src

    1. **Action与Dispatcher**:在Struts2中,Action类是业务逻辑处理的主要载体。用户请求首先会被Struts2的前端控制器(DispatcherServlet)捕获,然后根据配置文件(struts.xml)中的映射信息,将请求分发到相应的...

    struts2 PPT 张冰

    `控制器组件`可能详细讲解了Struts2中的Action类和拦截器。Action类是用户交互的桥梁,它处理请求、调用业务逻辑,并返回结果。拦截器则在Action调用前后执行,提供了对请求处理的增强功能。 `标签库`部分会介绍...

    一个自己写的用struts分发实现的ssh

    在Struts 中,Action 分发是核心控制器DispatcherServlet 的工作,它接收HTTP 请求,解析请求参数,然后根据配置文件(如struts-config.xml 或struts2的struts.xml)将请求分发到相应的Action 类进行处理。Action ...

    struts与struts2的区别

    Struts2的异常处理更为优雅,它可以通过拦截器来捕获并处理异常,同时提供全局的异常处理策略,而在Struts1中,异常处理往往需要在每个Action中单独处理。 **7. 插件支持:** Struts2拥有丰富的插件系统,如JSON...

    struts2中文教程

    数据校验是Struts2中的另一个重要部分。开发者可以通过注解或XML配置来定义字段的校验规则。当Action执行后,如果校验失败,Struts2会自动将错误信息绑定到Action的属性上,并展示给用户。 视图层在Struts2中通常是...

    基于struts2的简单购书管理系统

    6. **Action类**:在Struts2中,Action类是控制器的实现,它处理用户请求,调用业务逻辑,然后返回一个结果到视图。每个Action类通常对应一个特定的业务操作。 7. **配置文件**:包括struts.xml和web.xml。struts....

    Struts2之Servlet API及单元测试初识案例struts005

    Struts2中的`ActionServlet`就是对Servlet API的一种扩展,它作为整个框架的调度中心,负责接收请求、调用Action并返回相应的结果。 在Struts2中,Servlet API主要体现在以下几点: 1. **过滤器(Filter)**:...

    原创struts2讲义2.pdf

    拦截器是Struts2中的一个重要特性,它允许开发者在Action执行前后添加自定义的行为,比如身份验证、数据校验等。通过配置文件可以轻松地控制哪些Action需要经过哪些拦截器。 **1.2.3 FilterDispatcher与Action映射*...

    Struts2 工作原理 Struts2框架 有图

    Struts2框架作为Java Web开发领域中的一款经典MVC(Model-View-Controller)框架,其工作原理涉及到了一系列复杂的组件交互与流程控制。本文将深入解析Struts2的工作流程,帮助开发者理解其核心机制。 ### 一、...

    struts2实践案例

    在Struts2框架中,核心组件包括Action、Result、Interceptor和配置文件(struts.xml)。Action是业务逻辑的执行者,Result负责展示结果页面,Interceptor则是处理请求前后的逻辑,如日志、权限检查等。配置文件struts....

    struts2框架详解

    - 使用`struts2-spring-plugin`,可以直接在Spring容器中管理Action实例,实现依赖注入,提高可测试性。 10. **安全考虑** - 虽然Struts2提供了强大的功能,但历史上也存在过一些严重的安全漏洞,如CVE-2017-5638...

    Struts2-2.5.13最新jar下载

    8. **FilterDispatcher**:作为Struts2的前端控制器,FilterDispatcher负责接收HTTP请求,解析并分发到相应的Action。 Struts2-2.5.13的更新可能包括: - 性能优化:可能对核心组件进行了优化,以提高处理速度和...

    Struts 2的源码

    拦截器是Struts 2中非常重要的特性,它们在Action执行前后执行,可以实现如日志记录、事务管理、权限验证等功能。通过自定义拦截器,开发者可以扩展框架功能。 3. **配置文件** `struts-default.xml`是Struts 2的...

Global site tag (gtag.js) - Google Analytics