`

3_struts-config.xml基本配置导致抛出异常的原因分析

阅读更多

几种在struts-config.xml中经常由于粗心导致的配置错误

 

1  在action-mapping中的path属性中没有匹配到请求url的对应action时,一般会抛出如下异常

 

org.apache.struts.chain.commands.InvalidPathException: 
No action config found for the specified url

 

可能是由于没有设置该<action>或者没有正确设置<action>中的path属性。

 

2  在<action>中如果没有配置name属性或者name属性配置错误导致在<form-beans>中找不到匹配的元素时,struts容器并不会抛异常,而是很简单的将一个null值作为form参数传递给了Action.execute()方法。

 

		<action path="/login" type="com.element.LoginAction" name="loginForm">
			<forward name="loginSuccess" path="/loginSuccess.jsp"></forward>
			<forward name="loginFailure" path="/loginFailure.jsp"></forward>
		</action>
 

即:

public ActionForward execute(ActionMapping mapping, ActionForm form,  HttpServletRequest request, HttpServletResponse response) 

 方法中的form被struts传入null值,在接下来的form转型并不会抛异常,因为(LoginForm)null是合法的。但是在后面的对loginform存取参数的代码中一定会抛出NullPointException异常。

 

如果在一次request请求中不需要提交附加数据,那么就不需要在<action>中配置name属性。

 

 

3 表单上的控件name属性和formbean中的属性名不匹配的时候,struts就不会设置form中的那个不匹配的属性了,这样在转型后存取参数的时候就会发生NullPointException异常。

   	<form action="<%=request.getContextPath()%>/login.do">
   		username:<input name="username1" type="text"/><br/>
   		password:<input name="password" type="password"/><br/>
   		<input name="test" type="text"/>
   		<input type="submit" value="登陆">
   	</form>

 但是如果name属性匹配到formbean中的属性,但是表单控件并没有输入,则浏览器会发出

login.do?username=&password=xxx

 之类的url请求,这时struts会讲formbean中的属性设置为“”空字符串,而对于其他类型的属性,例如int型,就会设置成0值。

 

 

 

分享到:
评论

相关推荐

    Struts struts-config.xml配置

    - **全局异常处理**:这部分用于配置全局异常处理机制,当某个Action抛出异常时,可以由指定的异常处理器来处理这些异常。 - `&lt;global-exceptions&gt;`元素:用于定义全局异常处理规则。 - `&lt;exception&gt;`元素:用于...

    struts-1.2.4.tar.gz

    使用`&lt;global-exceptions&gt;`配置可以定义全局的异常处理器,使得错误信息能够优雅地呈现给用户,同时便于统一处理程序中抛出的异常。 8. **数据访问**: Struts 1.2.4支持多种数据访问技术,如JDBC、Hibernate、...

    struts-api.rar_struts a_struts api

    Struts允许开发者定义全局或特定Action的异常处理策略,当Action执行过程中抛出异常时,可以自定义返回的错误页面。 10. **ActionServlet**: Struts的核心组件ActionServlet是Servlet的子类,它处理HTTP请求,...

    struts-1.2.9-bin.zip

    3. **异常处理**:提供了全局的异常处理机制,当Action或ActionForm抛出异常时,可以自动跳转到错误页面。 4. **预定义的Action**:如RedirectAction和ForwardAction,简化了动作的执行。 5. **性能优化**:通过缓存...

    struts-config文件详解

    当应用程序抛出未捕获的异常时,可以通过此配置将控制权转移到特定的错误页面。 5. **global-forwards** `global-forwards`用于定义全局转发,也就是不依赖于任何特定Action的请求重定向。这些转发可以在整个应用...

    Struts常见错误汇总.txt

    此异常通常是在 Struts 初始化过程中抛出的,可能是由于配置错误或其他初始化时的问题导致。 **解决方案:** 1. **检查 struts-config.xml 文件**:确保文件格式正确,没有遗漏或多余的标签。 2. **检查 web.xml ...

    Struts常见错误的全面汇总

    当使用Struts的验证器时,如果在`validation.xml`中定义的资源不存在,会抛出此异常。确保所有需要的验证规则和资源在`validation.xml`中正确定义,并且在配置文件中引用正确。 以上列举的错误是Struts开发者在实践...

    Struts常见错误汇总

    有时在开发过程中,可能会遇到没有任何明显异常信息的情况,例如 Action 使用的 `forward` 指向了 `struts-config.xml` 中未配置的路径。 **解决方案:** 1. **调试代码**:通过添加日志输出或者使用调试工具逐步...

    struts常见异常及处理

    - **异常描述**:在 Struts 配置文件 `struts-config.xml` 中定义了一个 ActionForm,但 `type` 属性指定的类不存在或者在 Action 的定义中,`name` 或 `attribute` 属性指定的 ActionForm 不存在。 - **解决方案**...

    [新闻文章]Struts文章系统_strutsarticle_release.zip

    8. **异常处理**:Struts提供了一套全局的异常处理机制,可以将应用程序中抛出的异常映射到特定的错误页面,从而提高用户体验。 9. **拦截器(Interceptor)**:在Struts 2中,拦截器是AOP(面向切面编程)的一个...

    Struts快速学习指南

    Struts提供了全局的异常处理机制,可以统一处理程序中抛出的异常,避免因未捕获异常导致的系统崩溃。在struts-config.xml中配置全局异常映射即可实现。 六、验证框架 Struts的Validator框架允许开发者定义表单验证...

    配置 struts1.3

    - `global-exceptions`允许我们定义全局的异常处理策略,当Action执行时抛出未捕获的异常时,可以指定一个默认的错误页面或Action来处理。 8. **国际化与资源文件** - Struts支持多语言,通过资源文件(如`...

    -软件工程第一章作业

    在JSP页面中,我们可能会用标签来提交表单,如`&lt;html:form action="Login.do"&gt;`,但若Struts框架无法在配置文件中找到对应的Action映射,就会抛出此异常。解决方法是检查struts-config.xml中的配置,确保Action的...

    Struts1异常处理

    2. **Struts-config.xml配置异常处理**:在框架配置文件中,`&lt;global-exceptions&gt;`标签用于定义全局异常处理规则。例如: ```xml &lt;global-exceptions&gt; &lt;exception key="error.generic" type="java.lang.Exception...

    struts+spring文件上传大小限制.rar

    如果上传文件大小超过这个限制,Struts会抛出`MaxUploadSizeExceededException`异常。 2. Spring框架中的文件上传: Spring提供了`CommonsMultipartFile`类来处理文件上传,它是基于Apache Commons FileUpload库的...

    [信息办公]Struts图书馆管理系统_struts.zip

    7. **异常处理**:Struts提供了全局的异常处理机制,当业务逻辑抛出异常时,可以通过配置文件指定如何处理。 8. **国际化(Internationalization, i18n)**:Struts支持多语言,可以通过资源文件为不同地区提供本地化...

    J2EE综合—Struts常见错误的全面总结

    **错误描述**:当在Struts配置文件中未找到指定的ActionForm类型时,会抛出此异常。这通常意味着在`&lt;form-beans&gt;`元素下定义的ActionForm类不存在或者其类型(type属性)不正确。 **解决方法**: - 检查`struts-...

Global site tag (gtag.js) - Google Analytics