这个标签主要的的作用就是迭代出集合。。
value属性表示需要跌代显示出来的值。
status属性,又来保存迭代时的一些状态值。
注:1.如果需要引用valueStack中的值,需要使用这样的形式。
<s:iterator value="#userList" /> //userList在action部分被保存在Request中,所以使用#加属性名来引用值。
2.如果集合的值是通过action的方法,假设我们的action中有一个getListMenu方法,返回一个List集合。
我们可以使用如下的形式来引用这个集合,并用s:iterator来输出。
<s:iterator value="listMenu" />
3.iterator的value使用定义好的方式,如:
<s:iterator value="{1,2,3,4}" /> //这样跌代输出的值就是1.2.3.4这四个值。
二、iterator中输出具体值,如果,在上面我们的list中的对象,有两个属性,都是String类型,一个是name,一个是url。
我们可以这样来引用。
1. <s:property value="name" /> //这样我们将可以输出跌代对象的name属性值。
2. 如果我们希望使用<s:url />来将跳转过后的url进行处理,该如何来做?
<s:url value="%{url}"/> //%{}ognl的表达式,这样的值能够将url的值进行<s:url/>的处理
实际上就是转为绝对路径。这样,我们就可以对付一些因跳转换产生的路径问题。
原因:因为<s:iteratotr />以后,当前的对象应该就在ValueStack顶部了,这样当然的url实际上就是对象的url 属性了
三、使用ognl输出对应的值。
<s:textfield name="loginName" value="%{#request.loginNames}"/>
使用此表达式,会生成一个文本框,并且,如果request.attribute中有loginNames属性,将会做为些文本框的默认值。
如果只使用#request.loginNames在struts2的标签内部,是不会显示任何值的,注意外面加上的%{}附号,才会被正常的使用。
如果希望如EL语言一样直接输出文件,如在一个<a></a>之间的innerHTML文本为#request.loginNames的值,我们只要使用:<s:property value="#request.loginNames" />使可以正常使用!
注:
1.${}是EL语言的 %{}这样的形式是ognl表过式语言的,在struts2的标签内部,使用%{}这样的形式,在标签外部可以使用${}EL语言的方式。如果在struts2的标签内部使用${}这样的方式,会出现以下的错误提示:
According to TLD or attribute directive in tag file, attribute value does not accept any expressions
2.很多时候,我们使用struts2的一些标签,属性是需要接受集合的,如果集合是保存在 request,session,或者是值栈(非根对象的栈顶),可以使用#变量名的方式,如果获取的值是在Action中通过特定的方法来获取,就需要使用如 value="userList"这样的方式,只是去掉了前面的#。
分享到:
相关推荐
在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是<s:iterator>标签。
struts 2 s标签 a标签创建一个HTML超链接,等价于HTML 的<a href="".... 示范代码: <s:a href="login.action">登陆</s:a>
3. <s:action name=""></s:action>-----执行一个view里面的一个action 4. <s:actionerror/>-----如果action的errors有值那么显示出来 5. <s:actionmessage/>-----如果action的message有值那么显示出来 6. <s:...
<title>action标签</title> </head> <body> <!-- 这句会显示action请求的跳转页面success.jsp页面要显示的内容 --> <s:action name="action" executeResult="true"></s:action> <!--这句不会显示 --> <s:action name...
<s:iterator id="rs" value="resList" status="count" > </s:iterator> <s:iterator id="pwd" value="#request.usePwdList" status="mIndex"> <tr> <td> <a href="[removed]similarityPwdDeQQ('${pwd.idType...
如下代码:<s:form action="login2"> <s:textfield label="用户名" name="username"/> <s:password label="密码" name="password"/> <s:submit label="提交"/></s:form>我们看着以上的代码跟HTML的差不了多少,但是...
<s:url id="url_next" value="news_findAll.action"> <s:param name="pageNow" value="pageNow+1"></s:param> </s:url> <s:url id="url_first" value="news_findAll.action"> <s:param ...
UI标志又可以分为表单UI和非表单UI两部分。...不过,Struts 2.0加了几个我们经常在项目中用到的控件如:datepicker、doubleselect、timepicker、optiontransferselect等。...下面主要是ui标签的一些用法
5.4.1 action标签使用介绍 88 5.4.2 bean标签使用介绍 89 5.4.3 date标签使用介绍 91 5.4.4 debug标签使用介绍 94 5.4.5 include标签使用介绍 95 5.4.6 push标签使用介绍 97 5.4.7 set标签使用介绍 98 5.4.8 url标签...
<#if item = "spring"><#break></#if> ... </#list> <#list sequence as item> ... <#if item = "spring"><#break></#if> ... </#list> 关键字 item_index:是list当前值的下标 item_has_next:判断list是否...
a a标签创建一个HTML超链接,等价于HTML 的<a href="".... 示范代码: <s:a href="login.action">登陆</s:a>
其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替>会有更好的效果,因为 FreeMarker会把>解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:<#if (x>y)> ...
<s:text name="validation.required" > 人心的功能,如将Action输出到FreeMaker模板、Velocity模板、JasperReports和使用XSL转换等。这些都过result里的type(类型)属性(Attribute)定义的。另外,您还可以自定义...
<s:action name="category" namespace="/main" executeResult="true"></s:action> </div> executeResult="true":将action返回的页面整合到此页面 左中右依次如上述所写。 写main.xml,并把main.xml,包含在...
通用电子商务购物平台 ... <%@taglib uri="/struts-tags" prefix="s"%> <img src="image.do" id="img1"/> <a src='image.do?'>换一张试试看</a> type="submit" value="注 册" onclick="return validate();" />
内容包括:自定义类型转换器,文件上传,自定义拦截器,基于XML配置方式实现对action的所有方法进行输入校验,<s:token />标签防止重复提交等等功能的介绍和详解
类似java中的import语句prefix="s" 引用的名称在页面可以使用,就像java中生成的一个对象名,以后调用的时候直接使用<s:xxx/>就可以了uri="/struts-tags"%表示标签库的路径。相当于import一个具体的类~ 3、<form ...
2.6.2 使用请求转发的动作标识<jsp:forward> 2.6.3 子动作标.iR<jsp:param>~使用 2.7 实战检验 2.7.1 输出九九乘法表 2.7.2 JSP中实现随机抽奖 2.8 疑难解惑 2.8.1 在JSP页面中编写中文之后不能保存 2.8.2 访问JSP...
标记在使用时,用尖括号 "<>",标记的分类 1、封闭类型的标记 也称为 "双标记" , 必须成对出现 语法:<标记>内容</标记> Demo : 1、创建 p 标记 --<p>...</p> 2、创建 div 标记 -- <div></div> 3、创建 ...
Observable.from(names).subscribe(new Action1<String>() { @Override public void call(String s) { System.out.println("Hello " s "!"); } }); } 标签:RxJava