Struts2中S标签的#、%{}、%{#}符号的区别和用法?

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

1、#、%{}、%{#}的作用:

"#"符号:可以取出值栈上下文中存放的对象;

"%{}"符号:可以取出存在值栈中的Action对象,直接调用它的方法;

"%{#}"符号:在域对象中使用。是Struts2为了解决兼容性问题。

2、使用#、%{}、%{#}:

"#"符号强调从上下文取

   如#parameters.name[0]等价于request.getParameter("name");

   如#session.name等价于session.getAttribute("name");

   如#request.name等价于request.getAttribute("name")。

"%{}"符号强调从设定的root点取。    

   %{}用于计算表达式;

   如%{10+20}结果将输出30;

   如%{"a"+"b"}结果将输出"ab"。

"%{#}"符号:强调从设定的root点取。    

   仍然用于计算表达式,只不过操作元可以是变量

   如定义一个变量:

   <s:set name="age" value="%{25}"/>

   则%{#age}直接输出25,也可以省略"#",写为%{age}   ;

   若将age加10,%{#age+10},将输出30。不能省略"#"。也就说变量用于计算时不能省略"#"

猜你喜欢

转载自blog.csdn.net/qq_42246139/article/details/81877668