Spring mvc 实例 --JSTL结合EL实现JSP获取后台List回显界面

 JSTL EL 间的关系

【详见 java web前端瘦身器】,从该篇博客可以看出,JSTL是java web前台页面标签的集合,形成了一套规范,利用JSTL标签显示数据。EL表达式则是获取数据的工具,形如 ${} ,获取后台数据给标签赋值,从而回显界面。所以两者一个标签,一个标签里的数据,相辅相成。

JSTL标签:

1、常用的JSTL标签

 核心标签库包括:out , set , remove , catch , if , choose , when  URL .

表达式操作标签:  包括:out , set , remove , catch.

具体使用细则详见【 java web前端瘦身器

2、在JSP页面中使用JSTL标签库:

(1、首先需要先引入jstl.jar 和standard.jar两个jar包

(2、在jsp页面加入 <%@taglib uri=" http://java.sun.com/jsp/jstl/core"prefix="c"%>,如若需要引用其他标签,可将URI值换成对应地址。

标签库                         URI                                           前缀      使用模式

核心标签库                  http://java.sun.com/jstl/core         c             <c:tagname…>

国际化标签(I18N)        http://java.sun.com/jstl/fmt           fmt         <fmt:tagname…>

SQL标签库                 http://java.sun.com/jstl/sql            sql          <sql:tagname…>

XML标签库                http://java.sun.com/jstl/xml          x            <x:tagname…>

函数标签库                  http://java.sun.com/jstl/functions   fn           <fn:tagname…>

EL表达式:

1、EL基本格式:

EL的基本格式以美元($)符界定,内容包括在花括号({ })中,例如${teachersList}

2、EL存取器:通过“[]”或是“.”符号获取数据,用于检索对象的特性或集合的元素。例如后台返回list集合,获取集合中每一个对象,则利用${teachersList.teacherName}

应用验证

下面通过Spring mvc中JSP页面利用<c:forEach> 和<c:out>JSTL标签和EL表达式获取 Controller传回的teacherList集合中每一个元素为例,具体使用: 

Controller——获取业务数据,传入request对象 

@RequestMapping("/showTeacherEvaluate")

	public String showTeacherEvaluate(HttpServletRequest request,

			HttpServletResponse response,Model model){

			List<TeacherAssessResult>  teachersList=new ArrayList<TeacherAssessResult>();

			TeacherAssessResult re1=new TeacherAssessResult();

			re1.setCourseType("实践课");

			re1.setTeacherName("22");

			re1.setCourseName("微生物实验");

 

			TeacherAssessResult re2=new TeacherAssessResult();

			re2.setCourseType("实践课");

			re2.setTeacherName("33");

			re2.setCourseName("微生物实验");

			

			teachersList.add(re1);

			teachersList.add(re2);

 

			//添加实体集合到request对象

			request.setAttribute("teachersList", teachersList);

			return "TeacherEvaluating";

	}


JSP页面——利用EL表达式forEach 获取数据回显界面

<table class="easyui-datagrid" style="width:264px;height:620"

		data-options="singleSelect:true,collapsible:true,url:'datagrid_data1.json',method:'get'">

	<thead>

		<tr>

			<th data-options="field:'itemid',width:66">教师姓名</th>

			<th data-options="field:'productid',width:66">课程名称</th>

			<th data-options="field:'listprice',width:66,align:'right'">课程类型</th>

			<th data-options="field:'listprice',width:66,align:'right'">是否评估</th>

		</tr>

 

	<c:forEach items="${teachersList}" var="t"> 

		<tr>

			<th><c:out value="${t.teacherName}" /></th> 

			<th><c:out value="${t.courseName}" /></th> 

			<th><c:out value="${t.courseType}" /></th> 

			<th><a href="/list.jsp">尚未评估</th> 

		</tr> 

	 </c:forEach>

	</thead>

</table>

总结

   在java初期便接触了EL表达式和JSTL标签,由于后期好几个项目使用SSH框架,前台自然使用struts2标签,形如<s:property value="%{#User.getUserName()}"/>,返回List便利用<i:iterator>循环即可,当前端使用spring mvc重拾JSTL+EL时,才觉似曾相识,再次应证了知识还需回味才能愈香愈浓。





你可能感兴趣的:(Spring mvc 实例 --JSTL结合EL实现JSP获取后台List回显界面)