zoukankan      html  css  js  c++  java
  • Struts2 一张图片引发的bug

    今天如常的打开项目开放。写了一会保存测试。在登录时出了个错误当不影响正常使用。丫的昨天还好好的。行下手上的工作 开始找bug

    错误核心代码如下:

    10:34:46,442  WARN OgnlValueStack:60 - Error setting expression 'login.x' with value '[Ljava.lang.String;@5e7b8281'
    ognl.OgnlException: target is null for setProperty(null, "x", [Ljava.lang.String;@5e7b8281)

    10:34:46,445  WARN OgnlValueStack:60 - Error setting expression 'login.y' with value '[Ljava.lang.String;@221aa7c1'
    ognl.OgnlException: target is null for setProperty(null, "y", [Ljava.lang.String;@221aa7c1)

    报类型转换错误 可我的Action中压根就没有 什么x,y 参数。

    后在一个网址上看到有前辈也遇到相同的问题。解决方法是:(看看是否有图片 以及 这个图片是否有name属性 如果有就果断删掉把。

    下面是转载前辈所述:

    Struts2这个异常是在提交表单的时候发生的,乍一看以为是Struts2类型转换的错误,但是程序中又压根儿没有用到Struts2的类型转换,而且前台页面index.jsp中也没有设置x,y这些参数;且这个错误并不会影响程序的正常运行,找了很久,最后发现是提交按钮的缘故,提交按钮引用的是一个图片,如下:

    <input id="submit" type="image" name="ssc" src="asserts/images/5.jpg"/>

    由于表单提交中设置了name属性,所以struts2会进行接收相应的值,查找它的set 和 get方法,而action里面没有这个name值的,所以才出现了如上错误。可以这样写:
    <input id="submit" type="image" src="asserts/images/5.jpg" />
    将name属性去掉即可
    其实,在struts.xml文件里可以配置"struts.devMode"属性。
    当struts.devMode = true时,使用struts在默认配置下对任何提交到action的参数强制需要setter方法,html表单数据中有和action属性匹配不上的参数名时就会提示这样的信息。所以,在开发过程中将这个属性设为true还是很好的,它可以帮我们发现一些可能出现但又被我们忽视的问题,犯的“错误”越多,才能积累很多的经

    参考:http://fanli7.net/a/JAVAbiancheng/Struts/20140329/485364.html

  • 相关阅读:
    谈谈关于PHP连接数据库的两种方法(PDO&Mysqli)
    关于Mui严格模式下的报错解决方案
    CSS常用选择器的认识
    HTML汇总以及CSS的一些开端
    LAMP架构之PHP-FPM 服务器 转
    httpd配置
    notapai++ 使用小技巧
    转载-notepad++ zend-coding使用
    Apache下的配置文件httpd.conf、httpd-vhosts.conf 转
    Apache本机不同端口多站点配置:httpd-vhosts.conf(转载)
  • 原文地址:https://www.cnblogs.com/mxcy/p/3941112.html
Copyright © 2011-2022 走看看