java bean的一点疑问

csdnbanqiliao 2005-07-27 01:02:04
本来这个事挺简单,但是就是不想按规范走,所以才....
如果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快
...全文
137 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
humanity 2005-07-29
  • 打赏
  • 举报
回复
你不让他重启的话,那么如果 .class (非 JSP ) 修改了话, Tomcat 不管的,
也就是说你用的是上次的东西,这次修改后的等重启后才能生效,因为 JVM 类加载器已经加载的那个如果不 Reload 的话就一直用老的,没有听说 unload 一个 class.
csdnbanqiliao 2005-07-27
  • 打赏
  • 举报
回复
谢谢 lcllcl987
fire1_0 2005-07-27
  • 打赏
  • 举报
回复
没看明白
是不是在讲get set 方法啊?
csdnbanqiliao 2005-07-27
  • 打赏
  • 举报
回复
把上面的内容简化如下:

java bean 中方法的命名:
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...
lcllcl987 2005-07-27
  • 打赏
  • 举报
回复
你可以在server.xml中修改<reload>属性,改成true就可以了,就不用每次都重新启动tomcat
csdnbanqiliao 2005-07-27
  • 打赏
  • 举报
回复
To fire1_0(Steven) 是在说get set方法
To hellwindy 我只是想知道container(例如tomcat吧)查找bean的原则,如果按照规范写bean,完全不用考虑我说的3个方面,但这3个能透漏出一些container找bean的信息,但是我说的对不对呢,还是我看到的规律只是断章取意....
csdnbanqiliao 2005-07-27
  • 打赏
  • 举报
回复
是在说get setter,不会有,但是想知道.....:(
全粘架构师 2005-07-27
  • 打赏
  • 举报
回复
一般不会有人这样写getter和setter吧

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧