我是靠谱客的博主 自信大地,最近开发中收集的这篇文章主要介绍关于struts2 中action 属性没有 set 方法 依然会注入值的问题(解决),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

以前经常看到网上和书上说,struts2 action中的属性中要写相对应的setXXx,getXXx方法才能接收到网页中传来的参数!

无意中发现,属性没有写set get 方法,依然会注入值和取到值.

甚是不解,求助于网上依然没有得到解决!

花了点时间看了下源码!

发现:

struts2 参数拦载器在注入值的时候,有两种机制,(调用ognl)

 

这是OgnlRuntime 类中一段源码 hasSetMethod( context, target, targetClass, name ) || hasField( context, target, targetClass, name );

 

他会先查看你的action 中有没有对应的方法,如果发现无此方法,他会利用第二种方法直接给属性覆值,而无需对应的set方法!(当然都是通过反射机制实现的)

 

如果action 中属性过多的话,我觉得就不用写set get 方法了!(不知道这个会不会给以后维护带来问题).

 

待指点!不要骂我.

 

最后

以上就是自信大地为你收集整理的关于struts2 中action 属性没有 set 方法 依然会注入值的问题(解决)的全部内容,希望文章能够帮你解决关于struts2 中action 属性没有 set 方法 依然会注入值的问题(解决)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部