zoukankan      html  css  js  c++  java
  • struts2没有打印日志原因和No result defined for action XXXAction and result input

    在项目中调用一个action的方法的时候发生了一个错误,但是在catalina.out和配置的log4j都没有打印异常,后来在执行的action中加了logger.error("XXXXX"),也没有打印异常。

    后来发现是struts2默认的有异常拦截器ExceptionMappingInterceptor,但是是禁用的,需要自己启用

                    <interceptor-ref name="defaultStack">
                        <param name="exception.logEnabled">true</param>
                        <param name="exception.logLevel">ERROR</param>
                    </interceptor-ref>

    自定义全局异常处理的显示的页面

            <global-results>
                <result name="error">/public/error.jsp</result>
            </global-results>
    
            <global-exception-mappings>
                <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
            </global-exception-mappings>

    在显示的页面/public/error.jsp也可以显示发生的异常信息

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@taglib uri="/struts-tags" prefix="s"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
        <div class="msgFalse" >
            <dl>
                <dt>操作失败</dt>
            </dl>
            
            <s:property value="exception"/>
            <s:property value="exceptionStack"/>
        </div>
    </body>
    </html>

    异常:No result defined for action XXXAction and result input

    1.在action里面定义了某类型的变量,然后想通过struts的自动填装把post来的表单的数据转换,如果转换类型失败就出现此种错误

    2.页面提交了同一个名字的参数多个

    比如“”
    username 123
    username 123
    permissions 123
    info 31234
    页面提交了了两个username ,而我的后台却只写了一个String username,这样同样会出错.

    3.页面中用到的控件名称与后台Action中的属性名称不一致

    这个很好理解,名称不匹配,Struts2是不会给Action中的属性赋值的

  • 相关阅读:
    Spring总结九:事务管理机制
    Spring总结七:AOP动态代理的实现
    Spring总结六:AOP(面向切面编程)
    Nginx静态网站的部署
    Spring总结五:小结 使用spring访问servlet
    javascript 的dateObj.getTime() 在为C#的获取方式
    操作JavaScript数组
    判断是否是对象的原型
    JavaScript判断对象 是什么类型的.
    Javascript中类型: undefined, number ,string ,object ,boolean
  • 原文地址:https://www.cnblogs.com/grasp/p/11168603.html
Copyright © 2011-2022 走看看