`
energykey
  • 浏览: 597486 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2 action execute 不执行

阅读更多
注意:本文并非validate()方法执行后不执行execute();

跟踪断点发现execute没有执行,于是纳闷了,因为struts2 默认的执行方法就是execute啊,而且其他action 都是这样的,原来是可以执行的,但现在执行不了了,对比新旧文件发现,在同一个包(package)下,不能同时使用默认execute和显示声明method="XX"的方式。

如果要同时使用,就另外声明一个包,这个我看的讲struts2的书里好像关于这个包的讲的很少,这也是我通过实际例子遇到错误总结出来的,具体原理有兴趣的自己去看源码研究了。

示例:
<!-- Javascript generate -->
	<package name="javascript" extends="struts-default">
		<action name="genJs" class="GenJS">
			<result name="chat" type="freemarker">
				/WEB-INF/templates/script/placii.chat.ftl
			</result>
			<result name="file" type="freemarker">
				/WEB-INF/templates/script/placii.file.ftl
			</result>
			<result name="meeting" type="freemarker">
				/WEB-INF/templates/script/placii.meeting.ftl
			</result>
		</action>
	</package>
	
	  <package name="pagesoffice" extends="struts-default">
		<action name="recentoffices" class="OfficeAction" method="findPagesOfficeRecentlyAdded">
            <result name="success" type="freemarker">
                /WEB-INF/templates/recentoffices.ftl
            </result>
        </action>
        <action name="recentupdateoffices" class="OfficeAction" method="findPagesOfficeRecentlyUpdated">
            <result name="success" type="freemarker">
                /WEB-INF/templates/recentoffices.ftl
            </result>
        </action>
       </package>


两个package中,第一个package默认使用execute方法,第二个package中,由于同一action类里有多个可执行方法,古显示声明method.

如果你将这两个包合并为一个包,即会发现默认的execute方法的action是不会执行execute的,但是action会执行,比如断点跟踪发现setXX()的方法是执行了的。
0
0
分享到:
评论

相关推荐

    Struts2 Action参数详细说明

    默认情况下,Struts2会调用Action类中的execute方法来处理请求。但是,通过`method`属性,我们可以指定不同的方法对应不同的Action,这样可以实现一个类中多个方法的映射,提高代码复用性。例如: ```xml &lt;action ...

    struts 2 action 动态调用

    默认情况下,Struts 2会调用Action类中的`execute()`方法。 2. **Struts.xml**: 这是Struts 2的配置文件,用于配置Action、拦截器等组件。 3. **Interceptors (拦截器)**: 拦截器用于处理Action执行前后的一系列...

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

    默认情况下,Struts2会寻找与请求结果名相同的方法(如`execute`)进行调用。但通过`method`属性,我们可以指定特定的请求调用Action类中的不同方法。例如: ```xml &lt;action name="myAction" class=...

    Struts2 in action(struts2实战)

    作为一个基于Action和基于拦截器的框架,Struts2提供了丰富的功能,使得开发者能够构建可维护、可扩展的Web应用。下面我们将深入探讨Struts2的主要特性、工作原理以及如何在实际开发中运用。 1. **核心概念**: - ...

    Struts2 in action

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

    Struts 2实战 Struts 2 in action 的中文版

    根据提供的信息,我们可以推断出这是一本关于Struts 2框架的书籍——《Struts 2实战 Struts 2 in action 的中文版》。本书主要介绍了Struts 2框架的相关概念、工作原理以及实际应用案例等内容。接下来,我们将根据...

    Struts2中Action中是否需要实现Execute方法

    在Struts2中,Action类是业务逻辑处理的核心组件,它负责接收请求,执行相应的操作,并返回结果视图。那么,Action类是否必须实现`execute`方法呢?这取决于具体的情况。 1. **ActionSupport与BaseAction的继承** ...

    struts2 action 返回json方法(一)源码

    当客户端请求`/myAction`时,Struts2会执行`execute()`方法,然后返回一个包含`message`属性的JSON对象。默认情况下,Struts2会把所有非`null`的Action或值栈属性转换成JSON。 5. **自定义JSON输出** 如果需要...

    struts2.0之action

    尽管Struts 2.0的Action可以不依赖任何特定类或接口,但通常为了利用框架提供的便利性,开发者会选择继承`com.opensymphony.xwork2.ActionSupport`类。`ActionSupport`提供了诸如国际化、错误处理和验证等基础功能,...

    Struts 2使用注解配置Action

    在传统的Struts 2应用中,我们通常会通过XML配置文件(struts.xml)来定义Action,包括Action类、结果页面、拦截器等信息。然而,随着Java注解的广泛应用,Struts 2也引入了注解配置的方式来简化开发过程,避免了XML...

    struts1和struts2的区别

    - **Struts2**: Struts2的Action不直接依赖于Servlet API。Action内部并不直接操作`HttpServletRequest`或`HttpServletResponse`。取而代之的是,通过配置将这些对象注入Action中,或者通过拦截器来处理。 #### ...

    测试struts2中action

    当用户通过浏览器发送请求时,Struts2会根据配置文件中的映射找到对应的Action类,并调用该类的execute方法来处理请求。执行完成后,Action会返回一个结果,这个结果通常指向一个视图页面,如JSP或Freemarker模板等...

    Struts2--为Action的属性注入值

    动态方法调用允许我们不指定具体的execute方法,而是根据请求参数自动调用Action中的方法。类型转换则是指Struts2能够自动将请求参数的字符串值转换为Action属性所需的类型,如将`age`的字符串值转换为整型。 为了...

    Struts2_Action

    Struts2框架的配置文件不仅仅是struts.xml,还包括几个核心配置文件,其加载顺序如下: 1. struts-default.xml:提供默认的配置,包含默认拦截器栈和拦截器定义。 2. struts-plugin.xml:插件的配置文件,如果使用...

    Struts2接口文档

    总的来说,Struts2接口文档是学习和使用Struts2框架不可或缺的工具,它能帮助开发者高效地理解和使用框架提供的各种组件和接口,提升开发效率,减少错误,并有助于深入理解MVC模式在实际项目中的应用。通过仔细研读...

    struts2+json

    当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给前端。 接着,我们讨论AJAX。AJAX是一种在不重新加载整个网页的情况下,能够更新部分网页的技术。在本资源中,...

    Struts2中struts_xml的Action配置详解

    如果不指定,Struts2默认调用`execute()`方法。例如,如果我们希望调用`save()`方法: ```xml &lt;action name="saveUser" class="com.example.SaveUserAction" method="save"&gt; &lt;!-- ... --&gt; &lt;/action&gt; ``` 此外,`...

    Struts2执行原理

    7. **Action执行**:`ActionInvocation`调用Action的execute方法,执行业务逻辑。Action完成后,`ActionInvocation`根据Action返回的结果码(Result)找到相应的处理策略。 8. **结果返回**:结果通常是映射到一个...

Global site tag (gtag.js) - Google Analytics