我们爱分享----struts2的get和set方法
虽然很久没弄过java了 ,(没办法 需求访谈了半年了还没结束,一直用ext开发demo,悲剧中...)但是看见这个活动就想顶一下,所以想起来以前见过的一些问题,就再这里写写了,今天说说struts2的get和set的问题.因为我很久没开发java了 所以现在不方便贴测试代码(因为没有o(╯□╰)o).
以前做项目的时候我有一个同事在一个action类里定义了一个get开头的方法,这个方法是action的默认方法调用的,但是他在测试的时候这个方法老是先执行,也就是说还没调用就自己执行了 ,因为自己执行一些参数没有传进来,所以就报错了,怎么测试也不对,也没发现问题.他就纠结了,来找我了. 我看了一下,调试了一下发现这个方法是在浏览器发出action请求之后,struts2的servlet拦截到aciton请求,然后在初始化这个action类的时候就执行了,换言之,也就是说和类属性的get、set方法一起执行了,他执行的之后参数没有有效的传进来 就报错了,我当时就纳闷了 怎么会没调用就其他类属性方法一起之执行了那?我在没查看源代码的时候就有一个猜测就是,struts2的实现原理可能就是在初始化action类之后就会调用已get和set开头的所有方法,我后来验证了一下自己的想法,果然是这样。由于工作原因不能带大家看代码了,很久没用struts2了不知道他们源代码改了没。以后大家如果遇到这样子的问题可以尝试给方法改个名字,特别是开头的几个字改改可能就不报错了。顺便提一嘴问一句,我ext的经验能发上来吗。ext搞半年了 是半年全天一直搞ext 我快疯了!当然收获也很丰富!
以前做项目的时候我有一个同事在一个action类里定义了一个get开头的方法,这个方法是action的默认方法调用的,但是他在测试的时候这个方法老是先执行,也就是说还没调用就自己执行了 ,因为自己执行一些参数没有传进来,所以就报错了,怎么测试也不对,也没发现问题.他就纠结了,来找我了. 我看了一下,调试了一下发现这个方法是在浏览器发出action请求之后,struts2的servlet拦截到aciton请求,然后在初始化这个action类的时候就执行了,换言之,也就是说和类属性的get、set方法一起执行了,他执行的之后参数没有有效的传进来 就报错了,我当时就纳闷了 怎么会没调用就其他类属性方法一起之执行了那?我在没查看源代码的时候就有一个猜测就是,struts2的实现原理可能就是在初始化action类之后就会调用已get和set开头的所有方法,我后来验证了一下自己的想法,果然是这样。由于工作原因不能带大家看代码了,很久没用struts2了不知道他们源代码改了没。以后大家如果遇到这样子的问题可以尝试给方法改个名字,特别是开头的几个字改改可能就不报错了。顺便提一嘴问一句,我ext的经验能发上来吗。ext搞半年了 是半年全天一直搞ext 我快疯了!当然收获也很丰富!
...全文
相关推荐
struts2文件上传的两种方法
Struts2提供了两种主要的文件上传方式:单文件上传和多文件上传。下面将详细介绍这两种方法及其相关知识点。一、单文件上传1.
Servlet-Struts-Hibernate笔记分享
Servlet生命周期包括加载、初始化、服务、销毁等阶段,通过`service()`方法处理请求,并通过`doGet()`和`doPost()`处理GET和POST请求。
struts2中文乱码问题
#### 方法三:修改web.xml配置对于不同版本的Struts2框架,web.xml文件中的过滤器配置可能有所不同。下面分别介绍2.1.6之前的版本和2.1.7及之后版本的区别。
struts2的学习笔记+测试源代码
. **.struts2.xml配置**:在Struts2的配置文件中,需要为我们的Action类定义一个或多个对应的action,指定其接收的请求方法(GET或POST)以及结果视图。4.
【Struts专家Ted Husted系列】Struts2其实也可以CoC风格编程(一)
**Struts2的约定**: 例如,如何通过类名和方法名自动映射HTTP请求。通常,类名对应于URL路径,方法名对应于HTTP操作(GET、POST等)。这大大减少了XML配置文件中的内容。2.


