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

时间: 2024-08-11 07:49:47

Struts2 一张图片引发的bug的相关文章

安卓微信overflow-x overflow-y引发的bug

今天xgo文章图片页上线用微信扫页面发现一个bug,页面可以双击放大缩小. 找了半天原因,发现是图片描述设置了overflow-y引发的bug. 建议在微信场景里满屏显示不能滚动的页面里慎用overflow-y. xgo文章图片页上线:m.xgo.com.cn/info/1213384.html

一个int类型引发的bug

一.引言 今天我在项目开发中,遭遇了一个莫名其妙的问题,概括加抽象后形成如下问题:在使用MyBatis的XML语句实现Dao层接口 List<Person> selectBySome(@Param("record") PersonExample example)时候,我写的XML中有这么一句代码: <if test="record.id!=null"> b.id=record.id </if> 结果我及时不对example的id赋

一张图片引发的思考

看到一张图片,然后引发的一系列知识点的搜索 随便打开一张jpg图片,大小4MB,像素为600px*500px,分辨率为75dpi 好吧,最先引发的几个问题: 1.jpg.png.gif.bmp等等格式的文件有什么区别呢? 答:GIF是一种无损压缩,支持256(8bit)种颜色,支持单一透明度,常用于网页动画: JPG图片:有损压缩图片,不支持动画和透明色,24bit颜色(2的24次方种颜色) PNG:无损压缩,不支持动画,但是支持full alpha通道(后面讲什么是alpha). BMP:wi

var 在异步中引发的 bug

问题复现 for (var i = 0; i < 10; i++) { $http.get("/uri").then(function(data)){ mydata[i].data = data; } } 报错: unable to get property 'mydata' of null 问题原因 第一步,听说 var 和 let 作用域范围不同,所以特定尝试下 let,看是否能解决这个 bug. for (let i = 0; i < 10; i++) { $http

公用表(CTE)表达式引发的改变执行顺序同WHERE条件顺序引发的bug

以下模拟一下CTE出错 /*测试环境 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) */ 生成表Tab数据: --> --> (Roy)生成測試數據

多线程+fork 引发的bug查找

1. 问题描述 某个server SA是一个多线程服务器,主线程会调用fork,再exec生成工作进程SB. 实际上,SA的主线程fork出了一个子线程,但没有执行exec. # ps ajxf | grep r2server14022 28342 28341 14022 pts/2    28341 S+       0   0:00  |       \_ grep r2server    1 28046 28037  3823 ?           -1 Sl       0  31:2

储存过程嵌套临时表同名引发的BUG?

临时表使用:存储过程嵌套时,均创建了相同名称的临时表. create procedure SP_A ( @i int output )asbegin create table #t ( ta int ); insert into #t ( ta ) values ( convert(int, getdate()) ); select @i=count(0) from #t; print @i; end;gocreate procedure SP_Basbegin create table #t

jquery slide动画引发的bug解决方法

在hover事件中,如果该案例为图片滑过效果.用户持续,反复,快速地触发鼠标事件,动画则会产生延迟执行的bug.解决该问题,从代码逻辑入手,需完善动画的触发规则.在用户未执行完之前,不允许动画累积即可.解决方案之一: 添加 .filter(':not(:animated)') $(this).filter(':not(:animated)').slideDown(200);

先后顺序引发的bug

今天在Remit里发现一个bug,是说一个用户如果充了值但是没有添加任何银行账户的话,Remit里的金额是不会自动换算成外币的,但是平时测试的时候要么就是没有账户金额从0.00开始,要么就是有账户没有金额,所以一直到今天才发现这个问题.因为一般比较常用的一个流程是先添加银行账户,再充值,而这次刚好反过来,先充值再添加账户信息,刚好就出问题了.所以看来以后逻辑先后顺序也是会影响程序的,不能只考虑一面,要尝试跳出来思考另一面.