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

来源:互联网 发布:linux mint 编辑:程序博客网 时间:2024/04/28 13:39
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时,才觉似曾相识,再次应证了知识还需回味才能愈香愈浓。



0 0