0001 jsp中使用javabean的两点注意事项

  提升工作效率利器:

‎Mac App Store 上的“Whale - 任务管理、时间、卡片、高效率”

jsp中使用javabean的两点注意事项
首先一点:javabean一定要放在命名包里,不能放在默认包里,也就是在bean文件的开头要package pname;了,如果不放在命名包里而放在了默认包里,最后将报如下这样的错误:
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 18 in the jsp file: /javabean.jsp
TempBean cannot be resolved to a type
这个原因起初我也很不解,后来在网上查来查去才知道,java现在已经不允许命名包里的类调用默认包里的类了,也不允许在命名包里使用import classname(这个是默认包里的类)来引用默认包里的类了,所以才会出现以上问题。拿tomcat来说,它是先将jsp文件转换成java文件,然 后再将其编译成class文件来使用,但是tomcat转换成的java文件是定义在一个包里的,这个可以在tomcat的work目录中的java文件 中看到,所以如果javabean放在默认包里的话,因为java本身的语言规范定义,jsp生成的java文件就无法使用javabean了。我觉得也 由此可以得出,在jsp网页中以各种形式来使用放在默认包里的java类,都可能会引起编译错误,所以在jsp项目中,所有的类应该都放到自己相应的包 里,不要使用默认包。但是这里也有一个比较诡异的问题,虽然按JAVA规范说的是那样,但是如果在jsp网页中使用了默认包的类,只要把它用到的默认包的 class文件考到tomcat的work目录中的相应文件夹下,就不会发生上面所说的编译错误而能正常运行,至于原因是什么我也搞不懂,不太清楚 tomcat对类的搜寻机制。反正为了确保不出错误,还是把类放在命名包中,不要使用默认包就好。

第二点,这个可能也就是我这种笨蛋碰到了,就是在使用jsp:setProperty,jsp:getProperty这样的标签的时候,它的 property属性一定要用小写,不管javabean里的属性名的大小写如何,这里一定要写小写,不然就报什么Cannot find any information on property 'Msg' in a bean of type 'test.TestBean'之类的错误。

至于其他的基本上就是标准的javabean使用了,什么要有公共无参的构造函数,还有各个属性要有set/get方法,还有javabean要是一个public类。就这些吧!唉,头疼!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值