是用Struts2(struts2-core-2.1.8.jar)、Spring(spring-core-2.5.6.jar)整合,使用Spring管理Struts的Action,出现了一些问题。
1、使用Spring注入的业务逻辑代码,错误提示如下:
java.lang.NullPointerException
cn.nmg.archives.action.LoginAction.execute(LoginAction.java:36)
36行代码为:
User user = sm.validLogin(name, password);
2、没有使用Spring注入的业务逻辑代码,直接在action中处理jsp页面传入的参数,出现以下错误:
No result defined for action cn.nmg.archives.action.LoginAction and result success
struts.xml片段如下
<package name="SysManage" extends="struts-default">
<action name="login" class="loginAction">
<result name="success">/sys/main.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
jsp文件中调用action代码如下:
<form id="form1" action="login.action" method="post">
</form>
错误分析:Spring针对Struts的注入失败,就算是手动将需要注入的业务逻辑代码new出来,错误依旧。
解决:问题出在了struts.xml配置上,正确的应为:
<package name="SysManage" extends="struts-default" namespace="/sys">
<action name="login" class="loginAction">
<result name="success">/sys/main.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
对应的调用代码为:
<form id="form1" action="sys/login.action" method="post">
</form>
或者
<package name="SysManage" extends="struts-default" namespace="/">
<action name="login" class="loginAction">
<result name="success">/sys/main.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
对应的调用代码为:
<form id="form1" action="login.action" method="post">
</form>
原因:namespace="/"弄错了,需要配置上,根据配置不同,调用action的代码也要修改才好。
分享到:
相关推荐
在标题和描述中提到的"struts2 配置dtd 自动提示"是指在Eclipse中为`struts.xml`文件配置DTD自动提示的过程。这能帮助开发者避免手动记忆所有可能的标签、属性和它们的取值,提高开发效率并减少错误。 在`struts....
在Struts2中配置HTTPS主要涉及以下几个步骤: 1. **配置服务器**:首先,你需要在服务器端(如Tomcat、Jetty等)启用HTTPS。这通常涉及到修改服务器的配置文件(如Tomcat的`server.xml`),添加一个监听443端口的...
- **Interceptor**:在`package`元素内部,可以定义拦截器或引用拦截器堆栈,拦截器是Struts2中非常重要的组件,用于在Action执行前后进行一系列的前置和后置处理操作,比如登录验证、数据校验等。 - **Result ...
为了解决Struts2框架中出现的中文乱码问题,可以从以下几个方面入手: #### 1. 配置Struts2的字符编码 在Struts2的配置文件(如`struts.xml`)中,可以使用`constant`元素来设置全局的字符编码。例如,设置`struts...
在Struts2中,配置文件主要分为两个部分:`struts-default.xml`和用户自定义的配置文件,如`struts.xml`或`struts-config.xml`。这些XML文件定义了Action、结果类型、拦截器和包等元素,从而控制应用程序的行为。 *...
在Struts2中,`struts.xml`文件是核心配置文件,它定义了动作、结果、拦截器等关键组件。在默认情况下,`struts.xml`通常位于`src/main/resources`或在Web应用中是`WEB-INF/classes`目录下。 在描述的问题中,...
- Struts2有许多官方和第三方插件,如i18n、json、freemarker等,它们的配置在`struts-plugin.xml`中完成。 8. **Action与Service层整合** - Spring管理Service层对象,Struts2通过Spring插件注入Service,实现...
配置文件在Struts2中起着至关重要的作用,它们定义了请求如何被映射到特定的Action,以及如何处理结果。了解Struts2配置文件的加载顺序对于优化应用性能和解决配置问题至关重要。 Struts2的配置主要分布在以下几个...
本文将围绕Struts2中的关键配置进行深入探讨,旨在帮助开发者更好地理解和掌握Struts2的核心功能。 #### 二、Struts2核心配置 ##### 1. **ActionServlet配置** - **ActionServlet** 是Struts2的核心组件之一,...
在Struts2框架中,有两个核心配置文件特别重要:`struts.xml` 和 `struts.properties`。这两个文件共同决定了Struts2框架的行为特征和应用的运行逻辑。 #### 二、struts.xml 文件详解 `struts.xml` 文件是Struts2的...
在Struts2中,你需要定义一个filter,即`StrutsPrepareAndExecuteFilter`,它负责拦截特定的HTTP请求并将其转发给Struts框架进行处理。值得注意的是,自Struts2.1版本以后,不再使用`FilterDispatcher`,而是使用`...
配置文件在Struts2中起着至关重要的作用,它定义了框架的行为、动作映射、拦截器和其他关键设置。以下是Struts2配置文件的一些核心元素和属性的详细说明: 1. **配置文件结构**: Struts2的配置通常存储在一个名为...
在开始使用Struts2之前,我们需要先进行环境配置。以下将详细介绍Struts2的初始使用环境配置步骤。 首先,确保你已经安装了Java Development Kit (JDK)。JDK是开发Java应用的基础,你需要至少JDK 1.6或以上版本来...
在这个配置JSP的场景中,我们通常会涉及到Struts2的核心库和其他必要的依赖,这些依赖通常以jar(Java Archive)文件的形式存在。以下是关于Struts2配置JSP以及SSH整合所需的知识点: 1. **Struts2核心库**:Struts...
配置SSH框架时关于Struts2的配置文件
在没有使用任何集成开发环境的情况下配置Struts2,可能会遇到各种问题,尤其是在配置过程中对于细节的把握至关重要。以下是配置过程中需要注意的一些关键点: 1. **路径与大小写敏感性**:无论是Tomcat的地址路径...
记得在开发过程中,利用IDE的错误提示和日志信息来定位和解决问题,同时也可以借助Struts2的官方文档和社区资源来深入学习和提升。 标签中的“源码”指的是Struts2的源代码,开发者可以通过阅读源码来了解其内部...