问题:在action中将从数据库中查出的数据的集合在JSP页面循环打印出来?

为了举例简单,这里我直接在action中设置一个ArrayList集合,然后放到HttpServletRequest对象中供前台JSP页面获取,代码如下:

List mathList = new ArrayList();
mathList.add("高等数学");
mathList.add("离散数学");
mathList.add("线性代数");
mathList.add("概率论与数理统计");
mathList.add("数字逻辑");
mathList.add("数值分析");
mathList.add("运筹学");
ServletActionContext.getRequest().setAttribute("test", mathList);

在JSP页面中循环打印,用s标签和c标签分别是这样的:


		
	
	



可以发现:s标签通过 “#request.test这种形式获取request对象,而c标签则通过EL隐式对象 “${requestScope.test }”(PS:不熟悉的话可以参考这篇文章:http://www.zifangsky.cn/2016/02/jsp中的el隐式对象/)来获取request对象;其次,里的value值只能是一个变量,不能直接输出一段文字,而不仅可以通过EL表达式输出变量,而且可以直接输出一段文字


其他的一些测试代码:


		
	
	



以上代码的完整输出:

关于Struts2中的s标签和JSTL中的c标签的对比_第1张图片