关于Struts2中的s标签和JSTL中的c标签的对比
2016-02-14 00:05
771 查看
问题:在action中将从数据库中查出的数据的集合在JSP页面循环打印出来?为了举例简单,这里我直接在action中设置一个ArrayList集合,然后放到HttpServletRequest对象中供前台JSP页面获取,代码如下:
可以发现:s标签通过 “#request.test“这种形式获取request对象,而c标签则通过EL隐式对象 “${requestScope.test }”(PS:不熟悉的话可以参考这篇文章:http://www.zifangsky.cn/2016/02/jsp中的el隐式对象/)来获取request对象;其次,<s:property value=”#temp” />里的value值只能是一个变量,不能直接输出一段文字,而<c:out value=”${temp }”></c:out>不仅可以通过EL表达式输出变量,而且可以直接输出一段文字
其他的一些测试代码:
List<String> mathList = new ArrayList<String>(); mathList.add("高等数学"); mathList.add("离散数学"); mathList.add("线性代数"); mathList.add("概率论与数理统计"); mathList.add("数字逻辑"); mathList.add("数值分析"); mathList.add("运筹学"); ServletActionContext.getRequest().setAttribute("test", mathList);在JSP页面中循环打印,用s标签和c标签分别是这样的:
<s:iterator var="temp" value="#request.test"> <s:property value="#temp" /> </s:iterator> <br><hr> <c:forEach items="${requestScope.test }" var="temp"> <c:out value="${temp }"></c:out> </c:forEach> <br><hr>
可以发现:s标签通过 “#request.test“这种形式获取request对象,而c标签则通过EL隐式对象 “${requestScope.test }”(PS:不熟悉的话可以参考这篇文章:http://www.zifangsky.cn/2016/02/jsp中的el隐式对象/)来获取request对象;其次,<s:property value=”#temp” />里的value值只能是一个变量,不能直接输出一段文字,而<c:out value=”${temp }”></c:out>不仅可以通过EL表达式输出变量,而且可以直接输出一段文字
其他的一些测试代码:
<s:iterator var="temp0" value="{'1','2','3'}"> <s:property value="temp0" /> </s:iterator> <br><hr> <s:iterator value="{'java se','java web','java me','java ee'}" var="name" status="status"> <s:if test="#request.test != null"> <s:property value="name" /> </s:if> </s:iterator> <br><hr> <c:if test="${empty requestScope.test}"> <c:out value="c empty"></c:out> </c:if> <c:if test="${!empty requestScope.test}"> <c:out value="c not empty"></c:out> </c:if>以上代码的完整输出:
相关文章推荐
- 表格标签table深入了解
- WEB标准网页布局中尽量不要使用的HTML标签
- 如何使用jquery easyui创建标签组件
- web标准知识――用途相似的标签
- h1标签的使用技巧
- 探讨JavaScript标签位置的存放与功能有无关系
- HTML代码中标签的全部属性 中文注释说明
- Bootstrap每天必学之标签与徽章
- jQuery EasyUI 布局之动态添加tabs标签页
- jQuery+CSS实现滑动的标签分栏切换效果
- jquery 实现两Select 标签项互调示例代码
- 详解jQuery Mobile自定义标签
- jQuery获取标签文本内容和html内容的方法
- JavaScript获取并更改input标签name属性的方法
- css样式标签和js语法属性区别
- struts2 jquery 打造无限层次的树
- struts2入门Demo示例
- JSP自定义标签入门学习
- JSP中param标签用法实例分析
- 通过Ajax两种方式讲解Struts2接收数组表单的方法