关闭

Struts2标签注意点

标签: Struts2便签Struts2便签
193人阅读 评论(0) 收藏 举报
分类:

字符串N一定要用“”双引号包含,从test的包含则用单引号 ‘ ’,如果相反,则不能正确判断该属性是否与该字符串相等,因为java是强类型语言,单引号表示char类型,只能赋给一个字符给char类型,

而双引号则表示String类型。

正确:<s:if test='activityBean.searchForce=="N" '>
错误:<s:if test="activityBean.searchForce=='N' "> x

另外systemSettingModel.settingValue的值可以这样取得 
1.${systemSettingModel.settingValue} 
2.<s:property value="systemSettingModel.settingValue"/> 
3.<s:property value="#request.systemSettingModel.settingValue"/> 
#表示不在struts堆栈里,没有#表示从struts堆栈里取 


/***********************************
Struts2堆栈
struts2中的标签 
    s:a            中的href 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“” 
    s:select      中的list 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“” 
    s:if          中的test 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“” 
    s:iterator    中的value什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“” 
    s:checkboxlist 中的list 什么时候使用“# ” 什么时候该用“%{ }”  什么时候该用“%{# }” 什么时候用“”


Struts2中有值堆栈和堆栈上下文的概念,你用 <s:debug />可以看出. 

1.用#可以取出堆栈上下文中的存放的对象。
2.用%{}可以取出存在值堆栈中的Action对象,直接调用它的方法.例如你的Action如果继承了ActionSupport .那么在页面标签中。

3.用%{getText('key')}的方式可以拿出国际化信息. %{#}, 这是JSP2.1最新规范中的语法,是Struts2为其解决兼容性问题而写成%{#}的

4.在域对象中使用%{#} ,比如%{#session.user.userName} ,将获得user对象的 userName属性值


%{}强调的是从你设定的root点取

1.%{}用于计算表达式 
      如%{10+20}结果将输出30 
      如%{"a"+"b"}结果将输出"ab" 
2.#通常强调从上下文取 
      如#parameters.name[0]等价于request.getParameter("name") 
      如#session.name等价于session.getAttribute("name") 
      如#request.name等价于request.getAttribute("name") 
3.%{#}仍然用于计算表达式,只不过操作元可以是变量 
      如先定义一个变量 
      <s:set name="age" value="%{25}"/> 
      则%{#age}将输出25,也可以省略"#",写为%{age} 
      若将age加10,可这么写: 
      %{#age+10},将输出30.不能省略"#"。也就说变量用于计算时不能省略"#"

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:58615次
    • 积分:1086
    • 等级:
    • 排名:千里之外
    • 原创:43篇
    • 转载:27篇
    • 译文:0篇
    • 评论:4条