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

Struts 的action请求方式

 
阅读更多
在struts2中关于action的请求url请求基本上由三种情况:

首先要先提下struts在发送请求的处理流程:

客户端请求(http://localhost:8080/HelloWorld/stu/stuadd)->tomcat接收请求->根据HelloWorld这个项目来加载处理web.xml->把请求交给strutstfilter来处理,strutsfilter交给doFilter处理->doFilter根据struts.xml找到对应的namespace、action,及action处理完成返回的信息来显示调用对应的result页面->返回给客户端

struts.xml配置如下:

<package name="student" namespace='/stu' extends="struts-default">
    

        #1:不指定 <action method="methodName">由StudentAction中的默认函数execute来处理

        <action name="default" class="com.hupu.action.StudentAction" >
            <result>/Student_index.jsp</result>
        </action>

        #2:指定<action method="methodName"> 来处理
        <action name="index" class="com.hupu.action.StudentAction" method="index"  >
            <result>/Student_index.jsp</result>
        </action>
    
             <!-- method 请求时 回调用 method=add的方法 -->
        <action name="stuadd" class="com.hupu.action.StudentAction" method="add"  >
            <result name='add_student'>/Student_add.jsp</result>
            <result name='add_student_error'>/Student_add_error.jsp</result>
        </action>

          #3: <!-- DMI 动态方法调用 user!add  这样 就可以只配置这一样action 就能处理相似的请求-->
        <action name="user" class="com.hupu.action.UserAction">
            <result name='add_user'>/user_add.jsp</result>
        </action>

        #4:通配符处理
        <action name="*_*" class="com.hupu.action.{1}Action" method="{2}">
            <result>/{1}_{2}.jsp</result>
        </action>
    </package>




参数传递:struts中参数传递有基本三种方法:

1:Action接收参数:
    1:由Action中的getXXX(),setXXX()来处理参数的接收,其中的Action的属性名称不一定要传递的参数的名称一样,但是getXXX后面的名称一定要一致。

代码:


public class UserAction extends ActionSupport {
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    //参数和成员变量时一一对应的 类型自动转换
    private String name;
    private int age;

    public String add(){
        return "add_user";
    }
}

    2:域模型对象

创建一个域模型对象接收参数此时参数的传递:user.name=.....

同时由于可能域模型字段比要接收的字段少比如password的输入的验证,这时可以使用DTO(数据传输对象)

作为中间的数据接收然后再传递来处理

    DTO:数据传输对象 
    DO:数据对象
    3:modeldriven 模型驱动
代码:使用的是com.opensymphony.xwork2.ModelDriven;模型驱动类

这是请求的url地址:http://localhost:8080//HelloWorld/stu/stuadd?name=liujijun&age=27 就能填充到

Student类中,这是需要单独的new出来一个student对象

public class StudentAction extends ActionSupport implements ModelDriven<Student> {
   
    private Student student = new Student();
   
    public String index(){
       
        return SUCCESS;
    }
   
    public String add(){
       
        if(true){
            this.addFieldError("name", "name is error");
            this.addFieldError("name", "name is too long");
            return "add_student_error";
        }
        return "add_student";
    }

    @Override
    public Student getModel() {
        // TODO Auto-generated method stub
        return student;
    }
   
    @Override
    public String execute(){
        return SUCCESS;
    }

}
分享到:
评论

相关推荐

    struts2一个action处理多个请求 struts2实例

    在Struts2框架中,Action类是业务...通过这些方式,我们可以高效地管理Action,使一个Action类能够处理多种请求,降低代码冗余,提高代码维护性。在实际项目中,应根据需求选择最合适的策略,以达到最佳的设计效果。

    去掉.action去掉.do字样 隐藏struts2 URL地址action, strus1的扩展名do也是同理.zip

    Struts2和Struts1是两个非常著名的Java Web框架,它们在处理请求时通常会在URL中显式地显示.action或.do后缀。然而,为了提供更友好的用户体验和增强安全性,有时我们需要隐藏这些扩展名。本篇文章将详细介绍如何在...

    struts2 使用action属性接收中文参数(post提交)

    在处理用户请求时,Struts2允许开发者通过Action类来接收和处理参数,包括中文参数。当我们需要通过POST方法提交包含中文字符的数据时,可能会遇到编码问题,因为HTTP请求默认使用的是ASCII编码,而中文字符需要UTF-...

    Struts2 处理多个请求

    总结来说,Struts2通过动态方法调用、通配符映射和拦截器+`@Action`注解等方式,提供了灵活的多请求处理能力,使Action类能够更好地组织和管理不同的业务逻辑。开发者可以根据项目需求和代码可维护性选择适合的方法...

    struts2 result转向到action

    这里定义了一个名为 `login` 的 Action,当表单提交到 `/login.action` 时,Struts2 将会调用 `action.LoginAction` 类来处理这个请求。如果 `LoginAction` 返回 `"success"`,那么根据配置的 `redirect-action` ...

    Ajax与Struts2异步请求数据

    在本文中,我们将深入探讨如何将Ajax技术与Struts2框架结合,实现异步请求数据。这种方式能够提高用户体验,因为它允许后台处理数据而无需刷新整个页面。以下是对关键知识点的详细说明: 1. **Ajax(Asynchronous ...

    Struts2 Action参数详细说明

    在Struts2中,Action的配置和使用方式有多种,下面将详细介绍Struts2 Action参数的详细说明。 首先,我们来看Action的配置格式。在Struts2的配置文件(通常是struts.xml)中,Action的基本配置结构如下: ```xml ...

    struts2 Action编写方式

    在Struts2中,Action类扮演着控制器的角色,负责处理用户请求并协调模型与视图之间的交互。以下是关于"struts2 Action编写方式"的详细讲解: 1. POJO(Plain Old Java Object)方式: 在Struts2中,Action类可以...

    moke测试struts的action

    1. **Action配置**:在Struts配置文件中,每个Action都有一个唯一的名称,这个名称用于映射URL请求。配置还包括了Action类的全限定名,以及Action的输入、成功和错误结果的定义。 2. **Action类**:Action类是...

    Struts in Action

    这些拦截器可以灵活地插入到请求处理流程中,为开发者提供了一种强大的扩展框架的方式。 对于视图层,书里可能会涵盖使用JSP、Taglibs(标签库)和Freemarker模板技术来构建动态页面的方法。Struts的自定义标签库,...

    Struts2 in action

    当用户通过浏览器发送请求时,Struts2会将请求转发给相应的Action处理。 - **执行流程**: - 用户发起HTTP请求。 - 请求被Struts2的前端控制器(FilterDispatcher)拦截。 - FilterDispatcher根据配置找到对应的...

    struts2 Action 包 命名空间 servlet API

    Struts2通过FilterDispatcher这个Servlet过滤器来拦截所有到达服务器的请求,判断是否需要由Struts2框架处理,如果是,则根据配置的Action映射调用相应的execute()方法。 Struts2的包结构清晰,每个包都有其特定的...

    Struts2从一个带参数action跳转到另一个action

    资源中示例了一个struts2的配置文件中配置的action的result结果为另外一个action的配置,该跳转的过程中是带所有参赛调整的,在另外一个action中可以接受到当前action的所有参数,此配置文件是我日常开发中的经验...

    Struts2 in action(struts2实战)

    - **Action**:在Struts2中,Action是业务逻辑的载体,负责处理用户请求并返回结果。每个Action对应一个特定的用户操作。 - **Result**:Action执行完毕后,会返回一个Result,定义了页面跳转或数据呈现的方式。 ...

    struts in action 英文版

    它根据配置文件(struts-config.xml)中的映射信息来处理请求,将请求分发到相应的Action,Action执行完毕后返回一个ActionForward对象,指示应该转向哪个JSP页面或者其他的Action。 Struts与Spring框架的结合使用...

    Struts的小列子三个Action

    2. **配置文件**:`struts-config.xml`是Struts框架的核心配置文件,它定义了Action与请求URL的映射关系,以及Action如何转发到JSP或其它视图。例如,你可以定义如下配置: ```xml &lt;action path="/example1" type=...

    解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题

    通过两个自定义结果集,解决struts2请求转发或重定向时,一个结果码无法对应多个视图的问题。以前的做法,是在配置Action时使用通配符解决,但这样需要JSP页面名称和Action的方法名称一致,如果命名不一致或不规范,...

    Struts中action技术实现对数据的增删改查

    Struts是Java Web开发中的一个开源框架,主要负责控制应用程序的流程,而Action技术是Struts的核心组件之一,用于处理用户的请求。在这个场景中,我们讨论的是如何利用Struts的Action来实现对数据库数据的增删改查...

    Struts 1.XX 内置Action

    Action在处理完请求后,可以通过ActionForm将数据传递给视图,或者通过模型驱动的方式直接传递到业务对象。 4. **国际化和本地化**:Struts 1支持多语言,Action可以处理用户的语言选择,加载相应的资源文件,提供...

    struts2 Action 电子书 下载

    从给定的部分内容来看,这段文本深入介绍了Struts2框架的核心组件——Action,以及如何在MVC(Model-View-Controller)架构中运用Action来处理用户请求、管理业务逻辑及响应数据。 ### Struts2框架中的Action概念 ...

Global site tag (gtag.js) - Google Analytics