Hibernate入门---总结:与jstl结合----【jstl标签待解决】【第一天】

知识准备:

1.jstl需要的jar包
jstl-x.y.z.jar
2.标签库的声明
再jsp标签中:
(1)核心标签库声明:
@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"
(2)I18N格式标签库
@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/xml"
(3)SQL标签库声明
@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"
(4)XML标签库声明
@taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml"
(5)函数标签库声明
@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"
对jstl的使用举例:
一、核心标签库(core)的操作:

第一:c:out表达式操作:
使用c:out标签直接输出结果:Hello jstl 其中属性value可以使用el标签对javabean的get方法进行调用(注意:调用成员就是方法)

第二:c:set标签设定某个特定对象的一个属性
c:set value="" var="" scope="可以写page/request/session/application"
例如:c:set value="zhou" var="uname"
相当于在jsp中:pageContent.setAttribute("uname","zhou");
也相当于:c:set value="zhou" var="uname" scope="session"

第三:删除某个变量或者属性:c:remove

第四:为bean属性赋值:
jsp:useBean id="user" class="zhou.User"
c:set target="美元符号{user}" property="uname" value="admin"

二、流程控制catch、if、choose、when、otherwise
第一:抛出嵌套在该标签内的异常c:catch
c:catch var="error"捕捉,c:out value="美元符号{error}"输出异常

第二:c:if用作条件判断:
c:set var="score" value="81"
/set
c:if test="美元符号{score>=80&&score<=90}"
表达式
/c:if


第三、迭代操作forEach、forTokens
page128


三、URL标签的使用:
1.c:import导入一个url相当于jsp:include page=""
2.c:redirect相当于转发:
c:url var="loginurl" value="login.jsp" scope="page"
c:param name="uid" value="zhou"/
/c:url a href="美元{loginurl}" 带参数的url /a

JSTL+EL+Hibernate实现查询网页显示示例:

由于此例是根据前面的示例来的,所以这里只写jsp文件【记得导包】

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>测试</title>
</head>
<body>
<jsp:useBean id="dao" class="bean.CustomerDao"></jsp:useBean>
<%
pageContext.setAttribute("cuslist", dao.queryAllCustomer());
%>
<table border="1">
 <tr><td>id</td><td>name</td><td>phone</td></tr>
<c:forEach var="cus" items="cuslist" varStatus="item">
    <tr>
       <td>${cuslist[0].name}</td><td>${cuslist[0].phone}</td><td>${cuslist[0].customerID}</td>
    </tr>  
    <tr>
       <td>${cuslist[1].name}</td><td>${cuslist[1].phone}</td><td>${cuslist[1].customerID}</td>
    </tr>
</c:forEach>
</table>
</body>
</html>

由于使用jstl标签时cus.属性会报错,暂时不知道什么原因,所以使用el标签:

${cuslist[1].name}

本来猜想会出现四条记录【循环,原本我就两条记录】,结果没有,虽然如此可以使用,但大量数据时,这里的下标就没法表示了。

这个问题先留着,做个标记。

结果:

 

posted @ 2019-05-29 21:15  CiscoLee  阅读(334)  评论(0编辑  收藏  举报