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

Struts2中Action执行顺序测试

阅读更多

 

测试类Test.java:

 

public class Test extends ActionSupport{

 
private String id; 
private String username;
private int age;

private Service service;

 

public String getId() {
  System.out.println("getId");
 return id;
}
public void setId(String id) {
 System.out.println("setId="+id);
 this.id = id;
}


public String getUsername() {
  System.out.println("getUsername");
 return username;
}
public void setUsername(String username) {
 System.out.println("setUsername");
 this.username = username;
}


public int getAge() {
    System.out.println("getAge");
 return age;
}
public void setAge(int age) {
 System.out.println("setAge");
 this.age = age;
}

 

 public String execute(){

  System.out.println("aaaaaaaa");
  return SUCCESS;
 }

 

 public Service getService() {
  System.out.println("getService");
 return service;
}
public void setService(Service service) {
 System.out.println("setService");
 this.service = service;
}

 


}

JSP:


  <form action="<%=request.getContextPath()%>/qlg/test.ac" type="post" name="form1">
  <input type="hidden" name="username" value="112233"/>
  <input type="submit" name="button" value="submit"/>
 
  </form>

 

struts2配置文件:

 

     <action name="test" class="Test">
     <param name="id">1111</param>
     <result name="success">/WEB-INF/pages/qlg/LwsQGeneral/qryLwsQGeneral.jsp</result>
     </action>

 

Spring配置文件:

 

<bean name="Test" class="action.Test"  scope="prototype">
  <property name="service">
     <ref bean="Service"/> 
   </property>
 </bean>

 

 

 

启动服务器时打印:

setService

 

提交后后台打印结果为:

setService

setUsername
setId=1111
setId=1111
setUsername
aaaaaaaa

 

结论:

1)get方法都没有被打印,age的set,get方法也都没有打印,表示没有被显式或隐式的调用

set方法被调用的顺序应该为 1)Spring注入的bean  2)form表单中提交的参数  3)struts配置文件中给设置的参数

 

2)所有的set方法都在excute()之前被执行

3)如果是jfreechart等应用的话,

  

 public JFreeChart getChart()  会在excute()后被隐式调用

分享到:
评论

相关推荐

    Struts2 in action(struts2实战)

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

    struts2测试案例

    3. **Interceptor(拦截器)**:Struts2中的拦截器是一个强大的功能,可以实现事务管理、权限控制、日志记录等功能。在配置文件中,你可以定义一系列拦截器并指定它们的执行顺序。 4. **OGNL(Object-Graph ...

    Struts2InAction中文+源代码

    SampleApplication是《Struts2 in Action》书中配套的示例项目,包含了完整的Struts2应用结构。这个项目可以帮助读者理解如何组织Struts2的配置文件、动作类、视图和模型,以及如何将它们整合在一起形成一个功能完备...

    struts2测试工具

    测试通常包括验证Action类的行为、结果的跳转、Interceptor的执行顺序、以及视图层的正确渲染。同时,考虑到Struts2的安全性问题,如著名的Struts2 OGNL注入漏洞,测试工具也可能包含安全相关的检查。 总的来说,...

    Struts2运行流程测试

    2. **拦截器**:在Action执行之前,Struts2会调用一系列预定义或自定义的拦截器。这些拦截器可以进行权限检查、日志记录、数据验证等多种任务。 3. **Action执行**:经过所有拦截器后,Action的业务逻辑方法被调用...

    struts2的学习笔记+测试源代码

    这个学习笔记和测试源代码着重讲解了Struts2中Action路径的搜索顺序,这对于理解和调试Struts2应用至关重要。 在Struts2框架中,Action路径是用户请求与实际处理该请求的Action类之间的桥梁。当一个HTTP请求到达...

    struts2介绍及应用

    - **Interceptor**:拦截器是Struts2中的重要特性,它可以像过滤器一样在Action调用前后执行额外的操作,如日志记录、权限验证、性能监控等。 - **Value Stack**:值栈是Struts2用于存储Action属性和模型对象的...

    Struts2 做的留言板

    拦截器是Struts2的一个强大特性,它们在Action执行前后按顺序执行,可以实现如日志记录、权限验证、事务管理等功能。在这个留言板项目中,可能会用到登录检查、异常处理等拦截器。 7. **结果类型(Result Types)*...

    Struts2调试方法

    8. **异常处理**:Struts2提供了全局异常处理机制,当Action执行抛出异常时,可以通过全局异常处理器进行统一处理。确保异常处理器配置正确,并能捕获到预期的异常。 9. **使用开发工具**:利用浏览器的开发者工具...

    Struts1与Struts2本质区别

    值得注意的是,在Struts 2中,即使是简单的POJO(Plain Old Java Object)对象,只要包含`execute`方法,就可以作为Action使用。 #### 2. 线程模式方面的对比 - **Struts 1**:Action采用单例模式,这意味着所有...

    struts2核心包

    `xwork-2.0.4.jar`是Struts2依赖的一个重要库,XWork是Struts2的前身,它的许多功能被整合到了Struts2中,如动作(Action)处理和拦截器(Interceptor)机制。 描述中提到的"struts2-core-2.0.14.jar"是Struts2框架...

    struts 2教程资料

    1. **Action类**:在Struts 2中,Action类是业务逻辑的载体,负责处理用户的请求。每个Action类对应一个URL,用户通过不同的URL来调用不同的Action。 2. **配置文件**:Struts 2使用XML配置文件(通常为struts.xml...

    struts2基本类库

    OGNL是Struts2中的表达式语言,用于在Action对象和视图之间传递数据。它可以方便地访问和修改对象的属性,甚至执行复杂的表达式。 6. **Plug-in机制**: Struts2支持插件机制,允许开发者扩展框架功能,如自定义...

    Struts2Review项目

    此外,Struts2支持多种结果类型(Result Type),如dispatcher(用于转发到一个JSP页面)、stream(用于处理文件下载)等,使得Action执行后的结果可以灵活处理。结合Struts2的插件机制,可以方便地集成第三方库,如...

    struts2框架详解

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

    自己配置的struts2 demo

    在Struts2中,视图通常由JSP页面构成,它们负责渲染数据并展示给用户。当Action执行完毕并返回一个结果字符串后,Struts2会根据这个结果找到相应的JSP页面来显示。在`WebRoot/WEB-INF`下,你可能还会看到`struts....

    struts2 模块包含

    在Struts2中,模块化设计是其核心特性之一,它使得开发者可以将应用程序拆分成独立的功能单元,每个单元称为一个模块。这样做有助于提高代码的复用性和可测试性,同时简化了大型项目的开发和管理。 标题“Struts2 ...

    自定义实现Struts2源代码

    拦截器是Struts2中的一个重要概念,它允许你在Action执行前后执行自定义逻辑。比如,你可以创建一个验证拦截器,用于在Action执行前检查用户输入的有效性。自定义拦截器需要实现`...

Global site tag (gtag.js) - Google Analytics