求教关于struts2的应用中的表达式

spczhou 2011-03-04 06:23:37
在struts2的应用中,JSP页面中包含如下内容代码:

<c:if test="${str==1}">checked</c:if>

<s:if test="%{str==1}">checked</c:if>

<s:if test='#typeItem.key==str'>selected</s:if>

请问其中表达式中的$,%,#都代表什么含义,有何区别
...全文
100 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
redlotus_lyn 2011-03-04
  • 打赏
  • 举报
回复
1.<c:if test="${str==1}">checked</c:if>
中的$是EL表达式的用法。

2.<s:if test="%{str==1}">checked</c:if>
中的%是OGNL表达式的用法,主要用于判断和计算用,struts2默认支持OGNL表达式。

3.<s:if test='#typeItem.key==str'>selected</s:if>
中的#也是OGNL表达式的用法,主要用于访问非根对象属性。

struts2根对象是valueStack,其他是非根对象。
magong 2011-03-04
  • 打赏
  • 举报
回复
补充
${}是标准EL表达式
devin_jia 2011-03-04
  • 打赏
  • 举报
回复
$ # %的区别

a) $用于i18n和struts配置文件

b) #取得ActionContext的值

c) %将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用

i. 参考<s:property 和 <s:include

81,122

社区成员

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

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