`
cnwuzhulin
  • 浏览: 28198 次
  • 性别: 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> 

分享到:
评论
发表评论

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

相关推荐

    Struts in Action 中文版

    商业项目中使用Struts,并自由分发Struts 库。你也可以将Struts 组件集成到你的框架中,就 像他们是你自己编写的一样。详细情况, 参见Apache Software License , www.apache.org/LICENSE。 1.1.2. 为什么Struts 要...

    Struts1.3 备忘笔记

    04 Struts_04DispatchAction : 分发Action,根据设置的参数值提交到不同的方法进行处理业务,演示数学运算 05 Struts_05DynaActionForm : 相对应ActionForm来说,动态ActionForm只需要在配置文件中配置就可以了,...

    JSP程序设计课件包含Hibernate,Struts的介绍

    在Struts 2的技术框架,所有的请求均被截取组件先处理,再交由动作类分发 。Struts.xml是Struts 2的必须配置文件,放在WEB-INF/classes下面。 12.Struts Web应用框架是什么 它是开源框架:Struts 是 Apache 软件...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...

    Struts原理、开发及项目实施

    Struts的工作原理,如下图2所示: &lt;br/&gt; 控制:通过图2大家可以看到有一个XML文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...

    图书管理系统(struts+hibernate+spring+ext).rar

    Struts作为系统的MVC框架,负责处理用户的请求和响应,将请求分发到相应的处理器进行处理,并将处理结果返回给用户。Hibernate作为持久层框架,负责实现对象关系映射(ORM),将Java对象与数据库表进行映射,简化了...

    源码基于JSP的企业级新闻系统(SSH+MYSQL).rar

    Struts2负责处理用户请求,将请求分发到相应的Action进行处理;Spring负责管理各个组件,如Service、DAO等,实现解耦和便于维护;Hibernate负责与MySQL数据库进行数据持久化操作,简化了数据库操作的复杂度。此外,...

    在你的代码中自动实现设计规范

    火龙果软件工程技术中心 摘要设计规范只表示纯粹的想法;...例如,在Struts应用中,我推荐避免在Action类中使用实例变量,因为Action类是单例的,而且多个线程同时访问一个Action类实例是很平常的。其

    SSH-1:SSH整合的小型购物系统

    Controller:ActionServlet,struts-config.xml,Action) Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。 Spring: Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    11.2.1 ActionServlet(分发器) 11.2.2 Action(控制器) 11.2.3 Action Mapping(映射) 11.2.4 ActionForm(表单控制器) 11.2.5 ActionErrors(错误处理) 11.2.6 DispatchAction(多动作控制器) 11.3 利用...

    网络架构师148讲视频课程

    │ 第20节:X-gen生成需要的Action.avi │ 第21节:通过X-gen生成商品模块.avi │ 第22节:通过X-gen生成购物车模块.avi │ 第23节:通过X-gen来生成订单和库存模块.avi │ 第24节:加入ehcache,把工程加入到Git....

    IBM portlet开发指南

    Portlet与servlet/jsp中的桥梁 ...................................................................................... 12 用servlet生命周期事件 ..............................................................

Global site tag (gtag.js) - Google Analytics