本来这个事挺简单,但是就是不想按规范走,所以才....
如果bean有如下两个方法
... getUserName ...
... getuserName ...
经过测试tomcat5.0.19在访问${'userName'}时会使用bean的getuserName方法。
当然,若没有getuserName,那么仍可以通过${'userName'}来使用bean的getUserName方法
但是在jsp中如何通过EL来使用 ... getUSerName ...方法呢?
是不是因为... getUSerName ...不符合bean的命名规范,
那么就无法使用getUSerName方法啦?那么在如果有个方法叫getUS,就只能改名为getUs了吧[很不爽]
总感觉tomcat在使用bean的时候有点怪怪,总不是按照期望的方式运行。
但也总结了如下几个结论,不知对不对:
1. bean的方法命名中[setters and getters]必须有一个字母是大写的
例如:可以通过${usernamE}来使用bean中的getusernamE方法
如果bean中方法没有大写字母,那么这个方法就等死吧,没有谁可以通过EL表达式使用到该方法
2. bean中不能有两个大写字母连在一起,如果连在一起,那么同上一样等死:)
3. 并且在使用${userName}时,tomcat会优先使用getuserName而不使用getUserName,但是
若有getuserNameName、getusernameName。那么${userNameName}会使用userNameName,而
${usernameName}会使用getusernameName。如果你看到这里,不论你是否能帮我解决疑问还是
很感谢。
期待大家指点,我的总结ok否?顺便问问,什么容器能在修改bean后不用重新启动啊,我用的5.0.19
好郁闷,每一次都得重启,不知高版的tomcat用不用重启,最好是小型容器,我的机器很....还是晚上
上csdn快
如果bean有如下两个方法
... getUserName ...
... getuserName ...
经过测试tomcat5.0.19在访问${'userName'}时会使用bean的getuserName方法。
当然,若没有getuserName,那么仍可以通过${'userName'}来使用bean的getUserName方法
但是在jsp中如何通过EL来使用 ... getUSerName ...方法呢?
是不是因为... getUSerName ...不符合bean的命名规范,
那么就无法使用getUSerName方法啦?那么在如果有个方法叫getUS,就只能改名为getUs了吧[很不爽]
总感觉tomcat在使用bean的时候有点怪怪,总不是按照期望的方式运行。
但也总结了如下几个结论,不知对不对:
1. bean的方法命名中[setters and getters]必须有一个字母是大写的
例如:可以通过${usernamE}来使用bean中的getusernamE方法
如果bean中方法没有大写字母,那么这个方法就等死吧,没有谁可以通过EL表达式使用到该方法
2. bean中不能有两个大写字母连在一起,如果连在一起,那么同上一样等死:)
3. 并且在使用${userName}时,tomcat会优先使用getuserName而不使用getUserName,但是
若有getuserNameName、getusernameName。那么${userNameName}会使用userNameName,而
${usernameName}会使用getusernameName。如果你看到这里,不论你是否能帮我解决疑问还是
很感谢。
期待大家指点,我的总结ok否?顺便问问,什么容器能在修改bean后不用重新启动啊,我用的5.0.19
好郁闷,每一次都得重启,不知高版的tomcat用不用重启,最好是小型容器,我的机器很....还是晚上
上csdn快
解决方案 »
- 新手学习java中关于ArrayList,LinkedList,HashSet,Vector,TreeSet的区别和使用
- 如何将jsp中设置在xml固定调用两个页面
- 快速排序,简洁到难以置信!!
- 线程在wait之后,还未notify之前能否结束?
- 一个通用的权限管理系统,源代码及UML完整设计方案,很快就出来,哪个想要的话,请与我联系!
- 何为编译期?何为执行期?
- 怎样才可以取到分数
- java能生成可直接执行的程序吗???
- Socket编程的一个疑问
- 经验交流系列一:J2SE、J2EE、J2ME介绍,资源介绍及常见问题分析解决!(++继续++)
- 关于动态加载类的问题,欢迎大家指教!
- 怎么在java中自动创建多级文件夹
1.如果bean的方法是setxxxxx[xxxx都是小写],那么无法通过jsp使用该方法,
bean的方法必须至少有一个大写字母,
2.如果bean的方法是setXxxXXxxx[连续有两个大写字母],那么也无法通过jsp使用该方法
3.在满足1 2的前提下,如果方法名有两个大写字母,即方法名为setAbcDef或setabcDefG
在jsp中可以通过${bean.abcDef}、${bean.abcDefG使用。
但是有一个优先规则,e.g.如果一个bean包含如下两个
public type getAbcDef()和
public type getabcDef(
那么${bean.abcDef}会调用bean的getabcDef方法,而getAbcDef将永远不会被发现。满足以上三条的bean的方法都可以在jsp中通过EL表达式或scriptlet中使用,对吗?第三也可以这样说,若bean中有>=2个大写字母,且set或get后面的字母是大写,即形如setXxxYyyZzzz....或getXxxYyyZzzz....,那么对于jsp使用bean来说setxxxYyyZzzz... 和 getxxxYyyZzzz...将覆盖
setXxxYyyZzzz...和getXxxYyyZzzz...
是不是在讲get set 方法啊?
To hellwindy 我只是想知道container(例如tomcat吧)查找bean的原则,如果按照规范写bean,完全不用考虑我说的3个方面,但这3个能透漏出一些container找bean的信息,但是我说的对不对呢,还是我看到的规律只是断章取意....
也就是说你用的是上次的东西,这次修改后的等重启后才能生效,因为 JVM 类加载器已经加载的那个如果不 Reload 的话就一直用老的,没有听说 unload 一个 class.