- 浏览: 88930 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (97)
- java (23)
- 自定义标签 (3)
- struts (7)
- SSI (0)
- SSH (6)
- IBATIS (14)
- hibernate (2)
- spring (2)
- ssl认证 (1)
- jstl (2)
- jstl中list嵌套map (0)
- ajax (2)
- lucene (2)
- js (5)
- servlet (1)
- jquery (0)
- javascript (7)
- struts1 (1)
- sql (7)
- 公司面试心得 (3)
- jdk (1)
- ERP行业必备的工具 (1)
- 数据库连接池 (1)
- 日志配置问题 (1)
- 呵呵 (0)
- DOJO (1)
- WS (0)
- 工作流JBPM (1)
- 開發工具準備 (1)
- 注解 (0)
- fdsfsdf (0)
- 分页 (0)
- oracle (1)
最新评论
-
kongchuijian:
System.out.println(Arrays.toStr ...
java中数组的问题 -
wyr123789:
你上面已经定义成字节型的为什么还要强转啊?还有你那个'z'-i ...
新手入门 -
ipanel420:
居然是茁壮的同事
SSH2整合+分页+ajax+js校验用户名 -
yemengfan:
楼主能不能把你这个项目发给我啊。我想看看! yemengfa ...
SSH2整合+分页+ajax+js校验用户名
EL表达式
注:在一个jsp中一定要注意
<%@ page isELIgnored="true|false" %>
1,可以访问一个简单的参数
userName是一个参数
${userName}
2, 访问一个嵌套的参数
${userBean.userName}
3, 可以是一个表达式
${userBean.age>0}
${userBean.age>20 && userBean.age<10}
4, 隐含对象
1) pageContext jsp页面的上下文,它提供了访问以下对象的方法
a, Servlet Context,Servlet的上下文信息
b, Session 客户端的session对象
c, request
d, response
2) param 把请求中的参数名和单个值进行映射
3) paramValues 把请求中的参数名和一个array值进行映射
4) cookie 把请求中的cookie名和单个值进行映射
表达式编程举例:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset:gb2312" language="java" %>
<jsp:useBean id="user" class="com.iss.ch1.TestBean" scope="request">
<jsp:setProperty name="user" property="*" />
</jsp:useBean>
<html>
<head><title>表达式语言举例</title>
</head>
<body>
姓名:${user.userName}<br>
密码:${user.password}<br>
年龄:${user.age}<br>
<hr>
姓名:${param.userName}<br>
密码:${param.password}<br>
年龄:${param.age}<br>
<hr>
姓名:${param['userName']}<br>
密码:${param['password']}<br>
年龄:${param['age']}<br>
<hr>
标准标签库(JSTL)
JSTL包含了和以下操作相关的标签
常用标签 <c:out> ,<c:set>
条件标签 <c:if>, <c:choose> <c:when> <c:otherwise>
url标签 <c;import>
xml标签 <xml:out>
国际化输出标签 <fmt:timeZone>
SQL标签 : <sql:query>
1, 一般标签;
<c:out> <c:set> <c:remove> <c:catch>
1) 把计算的结果输出
a <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>
b <c:out value="value" [escapeXml="{true|false}"]> body </c:out>
<c:out value="test"/> //输出"test"
<c:out value="test2'>itese </c:out> //中的body中的内容不会发送到客户端
<c:out value="${test}"/>
<c:out value="${notex}" default="如果notex变量不存在,则将显示此信息"/>
2) 用来将某范围(request,session,application等)中设置某个值
a, <c:set value="value" var="varName" [scope="{page|request|session|application}"]>
b, <c:set var="varname" [scope="{page....}"]> body </c:set>
c, <c:set value="value" target="target" property="propertyname"/>
d, <c:set target="target" property="propertyname"> body </c:set>
如:<c:set value="admin" var="username"/>
<c:out value="${username}"/>
<c:set var="password">
pass
</c:set>
<c:set value="100" var="maxUser" scope="application"/>
<jsp:useBean id="user" scope="request" class="com.iss.ch1.test"/>
<c:set value="admin" target="${user}" property="userName"/>
<c:set target="${user}" property="password">
test
</c:set>
3) 用于删除某个变量或者属性
<c:remove var="varName" [scope="{page|request|session|application}"]/>
如:
<c:set value="20" var="max" scope="application"/>
<c:remove var="max" scope="application"/>
4) 捕获由嵌套在它里面的标签抛出的异常
<c:catch [var="varName"]> test </c:catch>
例:
<c:catch var="mytest">
<% int i=0;
int j=10/i;
%>
</c:catch>
<c:out value="${mytest}"/>
<c:out value="${mytest.message}"/>
<c:out value="${mytest.cause}"/>
2 条件标签
1) 用于进行条件判断,如果test属性为true,则就计算它的body
a, <c:if test="test1" var="varName" [scope="{page|request|....}"] />
b, <c:if test="test1" var="varName" [scope="{page|request|....}"] > body </c:if>
test为表达式的条件
例: <jsp:useBean id="user" class="com.iss.ch1.test"/>
<c:set value="16" target="${user}" property="age"/>
<c:if test="${user.age<18}">
对不起,你的年龄过小
</c:if>
2) <c:choose> 用于条件选择,它和<c:when>及<c:otherwise>一起使用
注: 不能单独使用
就象是开关语句 swith
<c:choose> </c:choose>
<c:when test="条件"> 也就是<c:choose>的分支
此语句一定要在<c:choose>的里面,并且一定要在<c:otherwise>之前
</c:when>
在<c:choose>中可以有0个或者多个<c:when>或<c:otherwise>
<c:otherwise> 也就是最后的分支语句
test 与开关语句中的最后选择
</c:otherwise>
如:
<c:choose>
<c:when test="${user.age<=18}">
<font color="blue">
</c:when>
<c:when test="${user.age<30 && user.age>18}">
<font color="red">
</c:when>
<c:otherwise>
<font color="green">
</c:otherwise>
</c:choose>
你的年龄:<c:out value="${user.age}"/>
3 迭代标签
我们一般使用 Iterator 或Enumeration来进行迭代
<c:forEach>
<c:forTokens>
语法1 在Collection中迭代
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="stet"]>
body
</c:forEach>
语法2 迭代固定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="stet"]>
body
</c:forEach>
例:
<% Collection users=new ArrayList();
for(int i=0;i<5;i++)
{
TestBean user=new TestBean();
user.setUser("user");
user.setAge("age");
users.add(user);
}
session.setAttribute("usert",users);
%>
<c:forEach var="use" items="${usert}">
<tr>
<td><c:out value="${use.user}" /></td>
<td><c:out value="${use.age}" /></td>
</tr>
</c:forEach>
<c:forTokens>
主要用于处理TokenString 的迭代,可以指定一个或者多个分隔符
<c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [begin="begin"] [end="end"] [step="step"]>
body
</c:forTokens>
使用"|" 作为分隔符
<c:forTokens var="tok" items="blue,red,green|yellow|pink,black|white" delims="|">
<c:out value="${tok}"/>©
</c:forTokens>
使用"|," 作为分隔符
<c:forTokens var="tok" items="blue,red,green|yellow|pink,black|white" delims="|,">
<c:out value="${tok}"/>©
</c:forTokens>
URL 相关的标签
就是页面导向,重定向,资源获得,参数传递等相关标签
<c:import url="url" var="varname" scope=" " charEnvoding=" ">
tstee <c:param >
</c:import >
与<jsp:include file=""/>一样的功能
<c:redirect url=" " > 重定向到另一个资源
<c:param> teewe
</c:redirect>
<c:redirect url="test.jsp">
<c:param name="username" value="admin"/>
</c:redirect> 重定向到test.jsp中同时带上相关参数
注:在以上所有标签,在jsp中要定义标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
xml标签
<x:parse>
<x:out>
<x:set>
1) <x:parse>用于解释xml文档
a, 解释由String 或reader对象产生的xml文档
<x:parse xml="xmldocument" {var="varName" [scope="scope"]|varDom="var" [scopeDom="scope"]} [systemid="systemid"] [filter="filter"/>
b, 解释在Body中指定的xml文档
<x:parse {var="varName" [scope="scope"]|varDom="var" [scopeDom="scope"]} [systemid="systemid"] [filter="filter">
body
</x:parse>
例如:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ page contentType="text/html;charset:gb2312" language="java" %>
<html><head><title>test</title></head>
<body>
<c:set var="xmltest">
<a><b><c>test1</c></b><d>test2</d></a>
</c:set>
<x:parse var="myxml" xml="${xmltest}" />
<x:out select="$myxml/a/b/c" />
<x:out select="$myxml//d" />
<x:parse var="mybook">
<books>
<book id="1">
<name>java书</name>
<price>89</price>
</book>
</books>
</x:parse>
<x:out select="$mybook/books//name"/>
<x:out select="$mybook//name"/>
<x:out select="mybook/books/book/name"/>
<x:out select ="mybook/books/book/price"/>
<x:set var="test">
<books>
<book id="01">
<name>jsp书</name>
<price>23</price>
<authors>
<author>
<name>teee</name>
<adder>ddddd</adder>
</author>
</authors>
</book>
</books>
</x:set>
<x:parse var="txml" xml="${test}"/>
<x:out select="txml/books/name"/>
xml流程控制
<x:if>
<x:choose>
<x:when>
<x:otherwise>
<x:forEach>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>实例</title>
</head>
<body bgcolor="#FFFFFF">
<h3>Parse / ForEach</h3>
<x:parse var="document">
<GetAllBooks>
<book id="1234">
<name>JSP应用</name>
<publisher>出版社</publisher>
<price>xxx</price>
<category>计算机</category>
<description>JSP书</description>
<authors>
<author id="1">
<name>asiapower</name>
<address>address:xxxx1</address>
</author>
<author id="2">
<name>hellking</name>
<address>address:xxxx2</address>
</author>
</authors>
</book>
</GetAllBooks>
</x:parse>
<x:forEach select="$document/GetAllBooks">
-> <x:out select="."/>
<br>
</x:forEach>
<hr/>
<x:forEach select="$document//book">
->
<x:if select=".//author">
<x:out select=".//author/name"/>
</x:if>
<br/>
</x:forEach>
<hr>
<x:forEach select="$document//book">
->
<x:choose>
<x:when select='$document//author[@id="2"]'>
author id=2,<x:out select='$document//author[@id="2"]'/>
</x:when>
<x:otherwise>
不是 id=2
</x:otherwise>
</x:choose>
<br/>
</x:forEach>
</body>
</html>
SQL相关标签
<sql:setDataSource> 用于设定数据源 ,还可以指其范围
<sql:stDataSource [datasource="datasource"] url="jdbcurl" [driver="driverClassName"] user="username" password="password" var="varname" scope="">
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>sql datasource</title>
</head>
<body bgcolor="#FFFFFF">
创建普通的数据源:<br>
<sql:setDataSource
var="example1"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"
user="bn"
password="bn"
/>
创建普通的数据源,把用户名和密码写在url中:<br>
<sql:setDataSource
var="example2"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev;user=bn;password=bn"
/>
获得一个数据源。<br>
<sql:setDataSource
var="example3"
dataSource="jdbc/bn"
/>
<hr>
使用第一个数据源:<hr>
<sql:query var="query1" dataSource="${example1}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query1.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
使用第二个数据源:<hr>
<sql:query var="query2" dataSource="${example2}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query2.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
使用第三个数据源:<hr>
<sql:query var="query3" dataSource="${example3}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query3.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
<sql:query>
语法:
<sql:query var ="varname" scope=" " datasource="" maxRows=" startRow=""/>
<sql:query var ="varname" scope=" " datasource="" maxRows=" startRow="">
<sql:param
</sql:query>
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>标准标签查询</title>
</head>
<body bgcolor="#FFFFFF">
创建普通的数据源:<br>
<sql:setDataSource
var="example"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"
user="bn"
password="bn"
scope="session"
/>
第一种查询:<hr>
<sql:query var="query" dataSource="${example}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
<hr>
第2种查询:<hr>
<sql:query var="query2" sql="SELECT * FROM contact where userName=?" dataSource="${example}">
<sql:param value="asiapower"/>
</sql:query>
<table border="1">
<c:forEach var="row" items="${query2.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
<hr>
第3种查询:<hr>
<sql:query var="query3" dataSource="${example}">
SELECT * FROM contact where userName=?
<sql:param value="hellking"/>
</sql:query>
<table border="1">
<c:forEach var="row" items="${query3.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
<sql:update>数据库的更新
语法:
<sql:update sql="" datasource=" " var="varname" scope=""/>
<sql:update sql="" datasource=" " var="varname" scope="">
<sql:param>
</sql:update>
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>标准标签的使用</title>
</head>
第1种更新:更新记录值1<hr>
<sql:update var="update1" dataSource="${example}">
update contact set mobile='13688888' where userName='asiapower'
</sql:update>
<hr>
第2种更新:更新记录值2<hr>
<sql:update var="update2" sql="update contact set mobile=? where userName=?" dataSource="${example}">
<sql:param value="13999999"/>
<sql:param value="hellking"/>
</sql:update>
<hr>
第3种更新:更新记录值3<hr>
<sql:update var="update3" dataSource="${example}">
update contact set mobile=? where userName=?
<sql:param value="1399888"/>
<sql:param value="chenzhanjun"/>
</sql:update>
第4种更新:创建表<hr>
<sql:update var="update4" sql="create table test_temp(test varchar(20))" dataSource="${example}"/>
第5种更新:增加记录
<sql:update var="update5" sql="insert into test_temp values('hellking')" dataSource="${example}"/>
第6种更新:删除记录<hr>
<sql:update var="update6" sql="delete from test_temp where test='hellking'" dataSource="${example}"/>
第7种更新:删除表<hr>
<sql:update var="update7" sql="drop table test_temp" dataSource="${example}"/>
</body>
</html>
<sql:param>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>param的使用</title>
</head>
<sql:setDataSource
var="example"
dataSource="jdbc/bn"
/>
执行数据添加操作:<hr>
<sql:update var="update" dataSource="${example}">
insert into contact (userName,mobile,phone,mail)values(?,?,?,?)
<sql:param>wyy</sql:param>
<sql:param>13634234</sql:param>
<sql:param>010213423434</sql:param>
<sql:param>wyy@xtom.com</sql:param>
</sql:update>
执行更新操作:<hr>
<sql:update var="update2" sql="update contact set mobile=? where userName=?" dataSource="${example}">
<sql:param value="13999999"/>
<sql:param value="hellking"/>
</sql:update>
</body>
</html>
http://ericfang.iteye.com
注:在一个jsp中一定要注意
<%@ page isELIgnored="true|false" %>
1,可以访问一个简单的参数
userName是一个参数
${userName}
2, 访问一个嵌套的参数
${userBean.userName}
3, 可以是一个表达式
${userBean.age>0}
${userBean.age>20 && userBean.age<10}
4, 隐含对象
1) pageContext jsp页面的上下文,它提供了访问以下对象的方法
a, Servlet Context,Servlet的上下文信息
b, Session 客户端的session对象
c, request
d, response
2) param 把请求中的参数名和单个值进行映射
3) paramValues 把请求中的参数名和一个array值进行映射
4) cookie 把请求中的cookie名和单个值进行映射
表达式编程举例:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset:gb2312" language="java" %>
<jsp:useBean id="user" class="com.iss.ch1.TestBean" scope="request">
<jsp:setProperty name="user" property="*" />
</jsp:useBean>
<html>
<head><title>表达式语言举例</title>
</head>
<body>
姓名:${user.userName}<br>
密码:${user.password}<br>
年龄:${user.age}<br>
<hr>
姓名:${param.userName}<br>
密码:${param.password}<br>
年龄:${param.age}<br>
<hr>
姓名:${param['userName']}<br>
密码:${param['password']}<br>
年龄:${param['age']}<br>
<hr>
标准标签库(JSTL)
JSTL包含了和以下操作相关的标签
常用标签 <c:out> ,<c:set>
条件标签 <c:if>, <c:choose> <c:when> <c:otherwise>
url标签 <c;import>
xml标签 <xml:out>
国际化输出标签 <fmt:timeZone>
SQL标签 : <sql:query>
1, 一般标签;
<c:out> <c:set> <c:remove> <c:catch>
1) 把计算的结果输出
a <c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>
b <c:out value="value" [escapeXml="{true|false}"]> body </c:out>
<c:out value="test"/> //输出"test"
<c:out value="test2'>itese </c:out> //中的body中的内容不会发送到客户端
<c:out value="${test}"/>
<c:out value="${notex}" default="如果notex变量不存在,则将显示此信息"/>
2) 用来将某范围(request,session,application等)中设置某个值
a, <c:set value="value" var="varName" [scope="{page|request|session|application}"]>
b, <c:set var="varname" [scope="{page....}"]> body </c:set>
c, <c:set value="value" target="target" property="propertyname"/>
d, <c:set target="target" property="propertyname"> body </c:set>
如:<c:set value="admin" var="username"/>
<c:out value="${username}"/>
<c:set var="password">
pass
</c:set>
<c:set value="100" var="maxUser" scope="application"/>
<jsp:useBean id="user" scope="request" class="com.iss.ch1.test"/>
<c:set value="admin" target="${user}" property="userName"/>
<c:set target="${user}" property="password">
test
</c:set>
3) 用于删除某个变量或者属性
<c:remove var="varName" [scope="{page|request|session|application}"]/>
如:
<c:set value="20" var="max" scope="application"/>
<c:remove var="max" scope="application"/>
4) 捕获由嵌套在它里面的标签抛出的异常
<c:catch [var="varName"]> test </c:catch>
例:
<c:catch var="mytest">
<% int i=0;
int j=10/i;
%>
</c:catch>
<c:out value="${mytest}"/>
<c:out value="${mytest.message}"/>
<c:out value="${mytest.cause}"/>
2 条件标签
1) 用于进行条件判断,如果test属性为true,则就计算它的body
a, <c:if test="test1" var="varName" [scope="{page|request|....}"] />
b, <c:if test="test1" var="varName" [scope="{page|request|....}"] > body </c:if>
test为表达式的条件
例: <jsp:useBean id="user" class="com.iss.ch1.test"/>
<c:set value="16" target="${user}" property="age"/>
<c:if test="${user.age<18}">
对不起,你的年龄过小
</c:if>
2) <c:choose> 用于条件选择,它和<c:when>及<c:otherwise>一起使用
注: 不能单独使用
就象是开关语句 swith
<c:choose> </c:choose>
<c:when test="条件"> 也就是<c:choose>的分支
此语句一定要在<c:choose>的里面,并且一定要在<c:otherwise>之前
</c:when>
在<c:choose>中可以有0个或者多个<c:when>或<c:otherwise>
<c:otherwise> 也就是最后的分支语句
test 与开关语句中的最后选择
</c:otherwise>
如:
<c:choose>
<c:when test="${user.age<=18}">
<font color="blue">
</c:when>
<c:when test="${user.age<30 && user.age>18}">
<font color="red">
</c:when>
<c:otherwise>
<font color="green">
</c:otherwise>
</c:choose>
你的年龄:<c:out value="${user.age}"/>
3 迭代标签
我们一般使用 Iterator 或Enumeration来进行迭代
<c:forEach>
<c:forTokens>
语法1 在Collection中迭代
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="stet"]>
body
</c:forEach>
语法2 迭代固定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="stet"]>
body
</c:forEach>
例:
<% Collection users=new ArrayList();
for(int i=0;i<5;i++)
{
TestBean user=new TestBean();
user.setUser("user");
user.setAge("age");
users.add(user);
}
session.setAttribute("usert",users);
%>
<c:forEach var="use" items="${usert}">
<tr>
<td><c:out value="${use.user}" /></td>
<td><c:out value="${use.age}" /></td>
</tr>
</c:forEach>
<c:forTokens>
主要用于处理TokenString 的迭代,可以指定一个或者多个分隔符
<c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [begin="begin"] [end="end"] [step="step"]>
body
</c:forTokens>
使用"|" 作为分隔符
<c:forTokens var="tok" items="blue,red,green|yellow|pink,black|white" delims="|">
<c:out value="${tok}"/>©
</c:forTokens>
使用"|," 作为分隔符
<c:forTokens var="tok" items="blue,red,green|yellow|pink,black|white" delims="|,">
<c:out value="${tok}"/>©
</c:forTokens>
URL 相关的标签
就是页面导向,重定向,资源获得,参数传递等相关标签
<c:import url="url" var="varname" scope=" " charEnvoding=" ">
tstee <c:param >
</c:import >
与<jsp:include file=""/>一样的功能
<c:redirect url=" " > 重定向到另一个资源
<c:param> teewe
</c:redirect>
<c:redirect url="test.jsp">
<c:param name="username" value="admin"/>
</c:redirect> 重定向到test.jsp中同时带上相关参数
注:在以上所有标签,在jsp中要定义标签:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
xml标签
<x:parse>
<x:out>
<x:set>
1) <x:parse>用于解释xml文档
a, 解释由String 或reader对象产生的xml文档
<x:parse xml="xmldocument" {var="varName" [scope="scope"]|varDom="var" [scopeDom="scope"]} [systemid="systemid"] [filter="filter"/>
b, 解释在Body中指定的xml文档
<x:parse {var="varName" [scope="scope"]|varDom="var" [scopeDom="scope"]} [systemid="systemid"] [filter="filter">
body
</x:parse>
例如:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ page contentType="text/html;charset:gb2312" language="java" %>
<html><head><title>test</title></head>
<body>
<c:set var="xmltest">
<a><b><c>test1</c></b><d>test2</d></a>
</c:set>
<x:parse var="myxml" xml="${xmltest}" />
<x:out select="$myxml/a/b/c" />
<x:out select="$myxml//d" />
<x:parse var="mybook">
<books>
<book id="1">
<name>java书</name>
<price>89</price>
</book>
</books>
</x:parse>
<x:out select="$mybook/books//name"/>
<x:out select="$mybook//name"/>
<x:out select="mybook/books/book/name"/>
<x:out select ="mybook/books/book/price"/>
<x:set var="test">
<books>
<book id="01">
<name>jsp书</name>
<price>23</price>
<authors>
<author>
<name>teee</name>
<adder>ddddd</adder>
</author>
</authors>
</book>
</books>
</x:set>
<x:parse var="txml" xml="${test}"/>
<x:out select="txml/books/name"/>
xml流程控制
<x:if>
<x:choose>
<x:when>
<x:otherwise>
<x:forEach>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>实例</title>
</head>
<body bgcolor="#FFFFFF">
<h3>Parse / ForEach</h3>
<x:parse var="document">
<GetAllBooks>
<book id="1234">
<name>JSP应用</name>
<publisher>出版社</publisher>
<price>xxx</price>
<category>计算机</category>
<description>JSP书</description>
<authors>
<author id="1">
<name>asiapower</name>
<address>address:xxxx1</address>
</author>
<author id="2">
<name>hellking</name>
<address>address:xxxx2</address>
</author>
</authors>
</book>
</GetAllBooks>
</x:parse>
<x:forEach select="$document/GetAllBooks">
-> <x:out select="."/>
<br>
</x:forEach>
<hr/>
<x:forEach select="$document//book">
->
<x:if select=".//author">
<x:out select=".//author/name"/>
</x:if>
<br/>
</x:forEach>
<hr>
<x:forEach select="$document//book">
->
<x:choose>
<x:when select='$document//author[@id="2"]'>
author id=2,<x:out select='$document//author[@id="2"]'/>
</x:when>
<x:otherwise>
不是 id=2
</x:otherwise>
</x:choose>
<br/>
</x:forEach>
</body>
</html>
SQL相关标签
<sql:setDataSource> 用于设定数据源 ,还可以指其范围
<sql:stDataSource [datasource="datasource"] url="jdbcurl" [driver="driverClassName"] user="username" password="password" var="varname" scope="">
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>sql datasource</title>
</head>
<body bgcolor="#FFFFFF">
创建普通的数据源:<br>
<sql:setDataSource
var="example1"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"
user="bn"
password="bn"
/>
创建普通的数据源,把用户名和密码写在url中:<br>
<sql:setDataSource
var="example2"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev;user=bn;password=bn"
/>
获得一个数据源。<br>
<sql:setDataSource
var="example3"
dataSource="jdbc/bn"
/>
<hr>
使用第一个数据源:<hr>
<sql:query var="query1" dataSource="${example1}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query1.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
使用第二个数据源:<hr>
<sql:query var="query2" dataSource="${example2}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query2.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
使用第三个数据源:<hr>
<sql:query var="query3" dataSource="${example3}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query3.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>Value: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
<sql:query>
语法:
<sql:query var ="varname" scope=" " datasource="" maxRows=" startRow=""/>
<sql:query var ="varname" scope=" " datasource="" maxRows=" startRow="">
<sql:param
</sql:query>
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>标准标签查询</title>
</head>
<body bgcolor="#FFFFFF">
创建普通的数据源:<br>
<sql:setDataSource
var="example"
driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev"
user="bn"
password="bn"
scope="session"
/>
第一种查询:<hr>
<sql:query var="query" dataSource="${example}">
SELECT * FROM contact
</sql:query>
<table border="1">
<c:forEach var="row" items="${query.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
<hr>
第2种查询:<hr>
<sql:query var="query2" sql="SELECT * FROM contact where userName=?" dataSource="${example}">
<sql:param value="asiapower"/>
</sql:query>
<table border="1">
<c:forEach var="row" items="${query2.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
<hr>
第3种查询:<hr>
<sql:query var="query3" dataSource="${example}">
SELECT * FROM contact where userName=?
<sql:param value="hellking"/>
</sql:query>
<table border="1">
<c:forEach var="row" items="${query3.rows}">
<tr>
<td>Name: <c:out value="${row.userName}"/></td>
<td>mobile: <c:out value="${row.mobile}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
<sql:update>数据库的更新
语法:
<sql:update sql="" datasource=" " var="varname" scope=""/>
<sql:update sql="" datasource=" " var="varname" scope="">
<sql:param>
</sql:update>
例:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>标准标签的使用</title>
</head>
第1种更新:更新记录值1<hr>
<sql:update var="update1" dataSource="${example}">
update contact set mobile='13688888' where userName='asiapower'
</sql:update>
<hr>
第2种更新:更新记录值2<hr>
<sql:update var="update2" sql="update contact set mobile=? where userName=?" dataSource="${example}">
<sql:param value="13999999"/>
<sql:param value="hellking"/>
</sql:update>
<hr>
第3种更新:更新记录值3<hr>
<sql:update var="update3" dataSource="${example}">
update contact set mobile=? where userName=?
<sql:param value="1399888"/>
<sql:param value="chenzhanjun"/>
</sql:update>
第4种更新:创建表<hr>
<sql:update var="update4" sql="create table test_temp(test varchar(20))" dataSource="${example}"/>
第5种更新:增加记录
<sql:update var="update5" sql="insert into test_temp values('hellking')" dataSource="${example}"/>
第6种更新:删除记录<hr>
<sql:update var="update6" sql="delete from test_temp where test='hellking'" dataSource="${example}"/>
第7种更新:删除表<hr>
<sql:update var="update7" sql="drop table test_temp" dataSource="${example}"/>
</body>
</html>
<sql:param>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %>
<%@ page contentType="text/html; charset=gb2312" language="java" %>
<html>
<head>
<title>param的使用</title>
</head>
<sql:setDataSource
var="example"
dataSource="jdbc/bn"
/>
执行数据添加操作:<hr>
<sql:update var="update" dataSource="${example}">
insert into contact (userName,mobile,phone,mail)values(?,?,?,?)
<sql:param>wyy</sql:param>
<sql:param>13634234</sql:param>
<sql:param>010213423434</sql:param>
<sql:param>wyy@xtom.com</sql:param>
</sql:update>
执行更新操作:<hr>
<sql:update var="update2" sql="update contact set mobile=? where userName=?" dataSource="${example}">
<sql:param value="13999999"/>
<sql:param value="hellking"/>
</sql:update>
</body>
</html>
http://ericfang.iteye.com
相关推荐
总的来说,JSTL和EL表达式是JSP开发中不可或缺的部分,它们提供了更加优雅的代码组织方式,降低了维护成本,并提高了开发效率。通过理解并熟练运用这两个工具,开发者能够更好地构建健壮且易于维护的Web应用程序。
EL表达式通常以`${}`包裹,它能够直接访问作用域中的对象,如request、session、application等。EL的优势在于其简洁性,可以快速地访问和操作数据,而无需编写大量的Java脚本。 **相关jar包**: - **standard.jar**...
**JSTL与EL的协同工作**:在JSP页面中,EL表达式通常与JSTL标签一起使用,EL负责数据的获取和计算,而JSTL标签则负责页面的逻辑控制。例如,使用EL表达式和`<c:if>`标签可以实现简单的条件判断: ```jsp ${user != ...
EL表达式是JSP中一种强大的数据访问机制,其语法类似于JavaScript,但它的主要目的是与服务器端的数据对象交互。例如,`${user.name}`这样的表达式可以用来获取名为`user`的JavaBean中的`name`属性值。 自定义EL...
在"JSTL与El表达式源代码"中,我们可以看到这两个技术的结合使用,以提高Web应用程序的可读性和可维护性。例如,`<c:out>`是JSTL中的一个核心标签,用于输出变量或表达式的值,而`${}`则是EL表达式的符号,用于访问...
【JSTL与EL表达式详解】 JSTL(JSP Standard Tag Library)是Java服务器端的一个重要组件,主要用于简化JSP页面的编程,提供了一系列的标签库来处理常见的任务,比如数据处理、URL操作、国际化等。它由Apache ...
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,E L(Expression Language) 目的:为了使JSP写起来更加简单。
在JSP页面中,使用`<c:forEach>`标签迭代用户列表,通过EL表达式 `${user.name}` 和 `${user.age}` 输出用户的名字和年龄。 **总结** JSTL和EL是Java Web开发中不可或缺的工具,它们提高了代码的可读性和可维护性。...
JSTL 1.1规范中的EL可以独立于JSTL标签库使用,JSP2.0容器能够直接解析和执行EL表达式。这使得EL在JSP页面的任何地方都可直接应用,增强了代码的可读性和可维护性。 总的来说,JSTL和EL为JSP开发带来了标准化和效率...
struts jstl el表达式示例代码 struts jstl el 表达式 源码
2. 进行逻辑操作:EL 表达式可以进行逻辑操作,例如比较、逻辑与、逻辑或等。 例如:${user.age >= 20} 判断用户年龄是否大于或等于 20 岁 3. 进行算术操作:EL 表达式可以进行算术操作,例如加、减、乘、除等。 ...
EL表达式支持多种运算符,包括算术运算符(+、-、*、/、mod)以及比较运算符(eq、ne、lt、gt、le、ge)。例如,`${5+2}`会返回7,`${10 div 8}`会返回1,`${-user.salary}`会取`user.salary`的负值。此外,EL还能...
JSTL标签与EL表达式
JavaWeb分页展示数据是Web应用开发中的常见需求,它涉及到多个关键技术的综合运用,包括AJAX、JSTL、EL表达式以及JSP标准动作。在这个项目中,我们将深入探讨这些技术,以便理解如何有效地在网页上实现数据的动态...
**JSP的JSTL标签和EL表达式详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java代码来生成动态内容。然而,传统的JSP脚本语法可能导致代码混乱且不易维护。为了解决这个问题...
本篇将详细介绍如何在JSP中利用JSTL与EL表达式来访问和遍历Map集合。 首先,JSTL是一个标准的标签库,它提供了一系列预定义的标签,用于处理常见的任务,如迭代、条件判断、XML处理等,避免了在JSP页面中直接写Java...
EL表达式经常与JSTL一起使用,尤其是在JSTL的`c`(Core)标签库中。例如,`<c:if>`和`<c:forEach>`标签可以配合EL表达式进行条件判断和循环操作。通过这种方式,开发者可以将业务逻辑和视图层分离,提高代码的可读性...
**JSTL1.1及EL表达式**是Java服务器页面(JSP)开发中的重要组件,它们极大地提升了JSP的可读性和可维护性。本文将深入探讨这两个概念及其在实际开发中的应用。 **JSTL(JavaServer Pages Standard Tag Library)**...