struts2标签使用中,什么时候用#,什么时候可以不用#

比如我看有些是这样写的:
<s:iterator id="page" value="List"></s:iterator>
<s:iterator id="page" value="#List"></s:iterator>
哪位能说的详细点,不要说在什么根不根中的,这个纠结了我好久。

值栈中的对象的不使用#,非值栈中的对象使用#
如果你不理解值栈的作用,简单点理解:当前action,或者处于action链中的action所拥有的属性,并且为该属性提供了getter和setter方法,那么在jsp中就不需要使用#,除此之外需要使用#,那么从这里你就可以知道action的属性如果提供了getter和setter方法,那么这些属性值就会放置到值栈中
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-11

这个我们要从很深刻的问题说起。什么是:根--ValueStack(值栈),什么是:StackContext(上下文),什么是:ActionContext;(这个地方,李刚老师的书似乎有点理解偏差,建议查看官方文档。)看完文档,我比较倾向于这个解释。


第2个回答  2012-11-09
通过debug查看一下 在debug中能找到的属性就不用#,找不到的用#

struts2里面,%,#,{}的用法?什么事hi用呢
3.至于你说的{},通常出现%或者$符号的时候就会用的,如%{“myurl”},其它的地方就不太常用了 ,总而言之,就是具体问题具体分析吧。

Struts2中关于表单标签加不加#的问题
加#表示是Map数据类型,不加#表示是List 数据类型,对于radio和list这两种类型的控件,其实这两种数据类型其实都可以用,只不过用Map数据类型时,是把Map中每个条目的name作为将来控件里每个条目的name,每个条目的value作为控件每个条目的value;而是用List类型会同时把将来控件中每个条目的name和value同时设...

struts2中# %{} ${}等的作用
1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。2)用于过滤和投影(projecting)...

struts2 的标签中 property是什么意思?怎么用?
是用于取得OgnlContext上下文中的属性值,也称为数据标签 特点是取request\/session\/application\/attr\/parameters这五个范围时,需要明确指定范围如:,记住,范围前面带#号,如果取ValueStack中的值时,是不需要带#的,可以直接取,因为Action中存储在ValueStack中的,所以取Action中的属性是不需要带#号的,可以直接取...

struts2 的标签中 property是什么意思?怎么用?
取ValueStack的值时,是不需要带#的,可以直接取,因为Action是存储在ValueStack中的,所以取Action中的属性不需要带#号,可以直接取。在action中设置了该属性的setter\/getter方法时,该属性才能取到,否则不会被拦截器处理,value参数的类型是object,可以理解为这个默认是会解析成ognl表达式。如果需要输入一个...

如何在jsp页面中使用struts2标签
要在jsp中使用struts2.0的标签,首先要在页面使用taglib指令,将struts2的tld文件导入<%@taglib prefix="s" uri="\/struts-tags"%> struts2的标签主要分为两大类:UI标签 这个几乎不怎么用就不介绍了 非UI标签 if,elseif和else \/\/只有当test的的值为true时,才会执行if语句块里面的内容 ...

Struts2里标签什么时候可以用到
不仅仅是换名, 这个东西在某些时候可以提高页面的访问速度举个例子,比如说你的session保存的是用户整个对象,如果在页面中多次用到userid这样属性做为判断,那可以用 这样可以直接使用uid这个变量去判断,而不用每次都去session中去取值还有一种情况是某一个数据要经过比较复杂的处理过程才得到结果,...

Struts2 使用OGNL取值时,什么时候用${} %{}??
1."$"符号 在国际化资源文件中使用OGNL表达式,例如年龄在${min}和 ${max}之间。在Struts2配置文件中使用OGNL表达式。2."%"符号 当标签的属性为字符串类型时,计算OGNL表达式的值。

struts2当中,如何不用‘?’来路径传参?
各个mvc框架有各自的特点,你想要struts2也像你下面提到的那样,明确的给你说,就目前的版本它不支持的。但是你非要做那样的效果,你就得自己编写框架了,要实现你需要的哪种请求地址格式,你就得使用过滤器(Filter)来实现。在过滤器里面拦截所有的请求,然后将请求地址解析成段,再把各段根据你的...

struts2 , if 标签 都有哪些用法
Struts2的标签库中,有一个出场频度很高的逻辑标签---IF标签 其实很简单, 就两个参数,常用的就一个"test"但是, 要写一个合法test表达式,却是让我觉得很麻烦的事.( 经常写错)test里面写的表达式经常要结合OGNL使用的, 例如:<s:set name="name" value="<%= "'" + request.getParameter("name"...

相似回答