Struts2标签与jstl标签的混合使用


1.以前一直使用jstl标签,后来也开始使用struts2的一些标签,毕竟struts2的有些标签使用起来还是比较方便

项目中常常会出现struts2标签和jstl标签混和用的情况,比如在自定义标签或者在循环标签等

1.在jstl中使用struts2

  1. <c:forEach var="ee" items="${requestScope.serviceList}" >   
  2.      jstl:<c:out value="${ee.id}"></c:out>   
  3.      el:${ee.id}   
  4.      struts2: <s:property value="#attr.ee.id"/>   
  5. </c:forEach>  

通过struts2标签取jstl标签的变量时,如果有设置scope,可以从scope中取值

如果没有就需要用#attr来取值

2.从jstl标签中获取值

  1. <c:set var="ctime" value="${el.createtime}" scope="request"/>   
  2. <c:set var="ctime2" value="${el.createtime}" />   
  3. <s:property value="#request.ctime"/>   
  4. <s:property value="#attr.ctime2"/>  

3.在struts2标签中使用jstl

  1. <s:iterator value="#request.serviceList" id="bs">   
  2.     struts2:<s:property value="#bs.keyid"/>   
  3.     el:${bs.keyid}   
  4.     jstl:<c:out value="${bs.keyid}"></c:out>   
  5. </s:iterator>  

4.从struts2标签中取值

  1. <!-- 数字类型 -->   
  2. <s:set name="pp" value="11"></s:set>       
  3. struts2:<s:property value="#pp"/>   
  4. el:${pp}   
  5. jstl:<c:out value="${pp}"></c:out>     
  6. <!-- 字符串类型 -->   
  7. <s:set name="pp2" value="'abc'" scope="request"></s:set>   
  8. struts2:<s:property value="#request.pp2"/>   
  9. el:${pp2}   
  10. jstl:<c:out value="${pp2}"></c:out>   

相关内容