el表达式

程序源自程序猿 2012-02-06 03:42:16
JDK 1.6.0_26

jsp这样
											<td>
${log.operateType.name}
</td>

此时,tomcat 7和myeclipse自带的tomcat下均没问题

而当
											<td>
${log.operateType.getName()}
</td>

此时,tomcat 7没问题,myeclipse自带tomcat报错

 /WEB-INF/views/jsp/systemLog/logList.jsp(256,14) The function getName must be used with a prefix when a default namespace is not specified 
为什么tomcat 7没问题而myeclipse自带的tomcat 会出现问题
...全文
247 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
感谢回复,请看15楼,已经有结论了[Quote=引用 16 楼 bingxueer1314521 的回复:]

应该是得到对象的属性吧
[/Quote]
bingxueer1314521 2012-02-07
  • 打赏
  • 举报
回复
应该是得到对象的属性吧
  • 打赏
  • 举报
回复
谢谢大家的回复 总结一下,在 EL 中直接呼叫 method 因为tomcat 7 对Servlet 3.0,JSP 2.2和JSP-EL 2.2的支持,el 2.2 支持调用方法 有什么不对或者不完善的地方请大家指正
  • 打赏
  • 举报
回复
el 2.2
里面有这样一句话

In version 2.2, either type of EL expression can represent a method invocation, such as
${trader.buy(“JAVA”)}, where the arugments to the mothod invocation are specified in the expression
  • 打赏
  • 举报
回复
在网上搜了下,有这样说的
在 EL 中直接呼叫 method.
重點在於 tomcat 7 implements JSP EL 2.2
只要有 implements JSP EL 2.2 都可用此語法, 如 WebSphere v8.
不一定要使用 tomcat.
Spring89 2012-02-06
  • 打赏
  • 举报
回复
哦,tomcat7不报错啊!那你就需要去了解tomcat7的新功能了
  • 打赏
  • 举报
回复
谢谢回复,我想知道为什么tomcat 7不会出错?[Quote=引用 8 楼 rumeng_you 的回复:]

el表达式不是这样用的
[/Quote]
  • 打赏
  • 举报
回复
谢谢回复,您意思是getName这种写法是tomcat 7 +JDK 7可以识别?[Quote=引用 1 楼 fengwei_csdn 的回复:]

My自带的是T6,"."和get本来什么什么区别,但是只有JDK7+T7才不区分.
[/Quote]但是我项目JDK是1.6的....
rumeng_you 2012-02-06
  • 打赏
  • 举报
回复
el表达式不是这样用的
  • 打赏
  • 举报
回复
谢谢回复,My自带的是T6,"."和get本来什么什么区别,但是只有JDK7+T7才不区分,您意思是getName这种写法是tomcat 7 +JDK 7可以识别?[Quote=引用楼主 justsmilence 的回复:]
JDK 1.6.0_26

jsp这样Java code
<td>
${log.operateType.name}
</t……
[/Quote]
  • 打赏
  • 举报
回复
谢谢回复,我知道EL表达式是调用对象的属性而不是方法,我想问为什么tomcat 7不会出错[Quote=引用 3 楼 xiongchangjing 的回复:]

没有 ${log.operateType.getName()}
这种写法
只能是属性不能是方法
[/Quote]
  • 打赏
  • 举报
回复
谢谢回复,我知道EL表达式是调用对象的属性而不是方法,我想问为什么tomcat 7不会出错 [Quote=引用 4 楼 liutianxiong888 的回复:]

呵呵,你的错误是很低级的!不管你用什么tomcat这种写法都是错误的: ${log.operateType.getName()}
EL表达式,是调用对象的属性,而不是方法!
[/Quote]
Spring89 2012-02-06
  • 打赏
  • 举报
回复
呵呵,你的错误是很低级的!不管你用什么tomcat这种写法都是错误的: ${log.operateType.getName()}
EL表达式,是调用对象的属性,而不是方法!
xiongchangjing 2012-02-06
  • 打赏
  • 举报
回复
没有 ${log.operateType.getName()}
这种写法
只能是属性不能是方法
fengwei_CSDN 2012-02-06
  • 打赏
  • 举报
回复
还有那个get方法是你自己敲出来的吧,平台没有代码提示的,通过这里也可以发现问题啊!
fengwei_CSDN 2012-02-06
  • 打赏
  • 举报
回复
My自带的是T6,"."和get本来什么什么区别,但是只有JDK7+T7才不区分.

81,114

社区成员

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

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