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

时间:2022-12-26 20:53:42
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时,才觉似曾相识,再次应证了知识还需回味才能愈香愈浓。