- 浏览: 253269 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (194)
- java (23)
- 数据结构和算法 (5)
- oracle (7)
- sql server (1)
- mysql (5)
- Ajax (5)
- JSTL (7)
- jsp (20)
- 组件 (11)
- C++可视化 (0)
- javascript (14)
- c/c++ (0)
- XML (6)
- 只是扩宽 (0)
- 设计模式 (3)
- 正则表达式 (3)
- 心情和感悟 (4)
- ACM (3)
- HTML/css (9)
- 软件破解 (2)
- spring (1)
- struts (15)
- hibernate (10)
- Servlet (2)
- sql (2)
- 面试题 (1)
- struts2 (22)
- Unix/Linux (0)
- javamail (1)
- svn (1)
- 异常 (3)
- EJB (3)
- jquery (2)
- android (1)
最新评论
-
lianlupengUestc:
From my testing (Struts2 versio ...
struts2 注解 -
yulongxiang:
非常感谢!!!!!!!
使用动态ActionForm(转)
一. <c:out>
作用:显示数据的内容,就像是<%=scripting-language%>一样;
语法:1) 没有本体(body)内容
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>
2) 有本体(body)内容
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>
属性:1) value: 需要显示出来的值;
2) default: 如果value的值为null, 则显示default的值;
3) escapeXml: 是否转换特殊字符, 如:< 转换成 , 默认情况下其值为true;
Null和错误处理:
假若value为null, 会显示default的值,假若没有设定default的值,则会显示一个空的字符串;
范例:<c:out value="Hello JSP 2.0!!"/> <!--在网页上显示Hello JSP2.0!!-->
<c:out value="${3+5}"/> <!--在网页上显示8;-->
<c:out value="${param.data}" default="No Data"/>
<c:out value="<p>有特殊字符</p>"/>
<c:out value="<p>有特殊字符</p>" escapeXml="false"/>
二. <c:set>
作用:将变量储存至JSP范围中或是JavaBean的属性中;
语法:1) 在value的值储存至范围为scope的varName变量之中
<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>
2) 在本体内容的值储存至范围为scope的varName变量之中
<c:set var="varName" [scope="{page|request|session|application}"]>
...本体内容
</c:set>
3) 将value的值储存至target对象的属性中
<c:set value="value" target="target" property="propertyName"/>
4) 将本体内容的数据储存至target对象的属性中
<c:set target="target" property="propertyName">
...本体内容
</c:set>
属性:1) value: 要被储存的值;
2) var : 欲存入的变量名称; 不能使用表达式来表示;
3) scope: var变量的JSP范围,默认值是page; 不能使用表达式来表示;
4) target:为一JavaBean或java.util.Map对象;
5) property: 指定target对象的属性;
范例:<c:set var="number" scope="request" value="${1+1}"/>
<c:set var="number" scope="session">
${3+5}
</c:set>
<c:set var="number" scope="request" value="${param.number}"/>
<c:set target="${user}" property="name" value="${param.Username}"/>
三. <c:remove>
作用:移除变量;
语法:<c:remove var="varName" [scope="{page|request|session|application}"]/>
属性:1) var : 欲移除的变量名称; 不能使用表达式来表示;
2) scope: var变量的JSP范围,默认值是page; 不能使用表达式来表示;
四. <c:catch>
作用:处理产生错误的异常状况,并且将错误信息储存至varName变量中。
语法:<c:catch [var="varName"]>
...欲抓取错误的部分
</c:catch>
属性:1) var: 用来储存错误信息的变量;
五. <c:if>
作用:和一般在程序中使用的if一样。
语法:1) 没有本体内容(body)
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
2) 有本体内容(body)
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
本体内容
</c:if>
属性:1) test: 如果表达式的结果为true, 则执行本体内容,false相反
2) var : 用来储存test运算后的结果,即true或false;
3) scope: var变量的JSP范围
六. <c:forEach>
作用:循环控制,它可以将集合中的成员循序浏览一遍, 当条件符合时,就会持续重复执行<c:forEach>的本体内容。
语法:1) 迭代集合对象之所有成员
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本体内容
</c:forEach>
2) 迭代指定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
本体内容
</c:forEach>
属性:1) var : 用来存放现在指到的成员
2) items : 被迭代的集合对象
3) varStatus: 用来存放现在指到的相关成员信息, 它有四个属性:
index: 现在指到成员的索引;
count: 总共指到成员的总数;
first: 现在指到的成员是否为第一个成员;
last: 现在指到的成员是否为最后一个成员;
(见c_forEach5.jsp)
4) begin: 开始的位置;
5) end : 结束的位置;
6) step : 每次迭代的间隔数;
注意:1) varName的范围只存在<c:forEach>...</c:forEach>的本体中,如果超出了本体,则不能再取得varName的值。
<c:forEach items=${atts}" var="item">
</c:forEach>
${item}<br>
${item}则不会显示item的内容
演示一下:<c:forEach>配套List, Set以及Map时使用的情景。 ???????????????????????????????????????????????????????????
七. <c:import>
作用:把其它静态或动态文件包含至本身JSP网页。和<jsp:include>相比,它能包含不同web application或者是其他网站的文件。
语法:1) <c:import url="url" [context="context"] [var="varName"] [scope="{page|request|session|application}"]
[charEncoding="charEncoding"]>
本体内容
</c:import>
2) <c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
本体内容
</c:import>
属性:1) url: 一文件被包含的地址;
2) context: 相同container下,其他web站点必须以"/"开头;
3) var : 储存被包含的文件的内容(以String类型存入)。
当var属性存在的时候,被包含的文件内容导入后不会输出在网页上,而是以String的形式
4) scope : var变量的JSP范围;
5) charEncoding: 被包含文件之内容的编码格式;
6) varReader : 储存被包含的文件的内容(以Reader类型存入)
示例: 1) <c:import url="http://java.sun.com"/>
2) <c:import url="ftp://202.168.0.202/data.txt"/> <!--支持ftp协议-->
3) <c:import url="Hello.jsp"/>
4) <c:import url="images/hello.txt"/>
5) <c:import url="/jsp/index.html" context="/others"/>
导入同一个服务器下others应用下的jsp/index.html文件内容,
注意:
a. 被包含的web站点必须在server.xml中定义过;
b. <context>的crossContext属性值必须为true。这样,others应用下的文件
才可以被其他web站点调用。
...
<context path="/others" docBase="others" crossContext="true" reloadable="true"/>
...
八. <c:url>
作用:用来产生URL, 以前我们必须使用相对地址或是绝对地址去取得需要的图文件或文件,现在我们可以直接利用<c:url>从Web站点的角度来设定需要的图文件或文件的地址。
语法:1) <c:url value="value" [context="context"] [var="varName"]
[scope="{page|request|session|application}"]/>
2) <c:url value="value" [context="context"] [var="varName"]
[scope="{page|request|session|application}"]>
<c:param>标签
</c:url>
属性:1) value; 执行的URL;
2) context: 相同container下,其他web站台必须以"/"开头;
3) var: 储存被包含文件的内容(以String类型存入)
4) scope: var变量的JSP范围
示例:1) <c:url value="http://www.javaw.cn">
<c:param name="param" value="value"/>
</c:url>
执行结果产生一个网址为:http://www.javaw.cn?param=value
2) <a href="
<c:url value="http://www.javaw.cn">
<c:param name="param" value="value"/>
</c:url>Java技术论坛
</a>
执行结果产生一个网址为:<a href="http://www.javaw.cn?param=value">Java技术论坛</a>
3) <img src="<c:url value="/images/code.gif"/>"/>
执行结果产生一个网址为:<img src="/应用名称/images/code.gif"/>
九. <c:redirect>
作用:将客户端的请求从一个JSP网页导向到其他文件
语法:1) 没有本体内容
<c:redirect url="url" [context="context"]/>
2) 本体内容代表查询字符串参数
<c:redirect url="url" [context="context"]>
<c:param>
</c:redirect>
属性:1) url: 导向的目标地址;
2) context: 相同container下,其他web站点必须以"/"开头
示例:<c:redirect url="http://localhost:8080">
<c:param name="param" value="value"/>
</c:redirect>
十. <fmt:setLocale>
作用:设定用户的语言区地区。
语法:<fmt:setLocale value="local" [variant="variant"]
[scope="{page|request|session|application}"]/>
属性:1) value: 地区代码。其中最少要有两个字母的语言代码,如:zh、en, 然后也可以再加上两个字母的国家和地区代码,如:US, TW, 两者可以由"-"或"_"
相连接起来,例如:zh_TW, zh_CN, en, en_US. 假若value为null时,则使用执行中的默认地域(locale)
2) varient: 供货商或浏览器的规格,例:WIN代表Windows, Mac代表Macintosh.
3) scope: 地区设定的套用范围;
十一. <fmt:requestEncoding>
作用:设定字符串编码,功能和ServletRequest.setCharacterEncoding()相同;
语法: <fmt:requestEncoding [value="charseName"]/>
属性:1) value: 字符串编码,当我们设定value为GB2312时,表示将所有传送过来的字符串皆用GB2312编码处理,如果没有设定value属性,则它将会自动去寻找
合适的编码方式。
十二. <fmt:message>
作用:从指定的资源中把特定关键字中的值抓取出来;
语法:1) <fmt:message key="messageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]/>
2) <fmt:message key="meesageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]>
<fmt:param>
</fmt:message>
3) <fmt:message key="meesageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]>
索引
(<fmt:param>标签)
</fmt:message>
属性: 1) key: 索引;
2) bundle: 使用的数据来源;
3) var: 用来储存国际化信息;
4) scope: var变量的JSP范围;
十三. <fmt:param>
作用:动态设定数据来源中抓出内容的参数;
语法:1) 通过value属性设定参数值
<fmt:param value="messageParameter"/>
2) 通过本体内容设定参数值
<fmt:param>
本体内容
</fmt:param>
示例:1) Str3=today is {0, date}
其中{0,date}表示为一个动态变量, 0代表第一个动态变量;date代表该动态变量的类型。
十四. <fmt:bundle>
作用:设定本体内容的数据来源;
语法:<fmt:bundle basename="basename" [prefix="prefix"]>
本体内容
</fmt:bundle>
属性:1) basename: 要使用的资源名称,如果我们的properties文件为Resource.properties, 那么
basename的值为Resource. basename的值千万不可有任何文件类型。
2) prefix: 设定前置关键字。
例:当properties中内容如下:
requestinfo.label.method=Method:
requestinfo.label.requesturi=Request URI:
那么我们可以写成如下方式将其内容显示出来:
<fmt:bundle basename="Resource" prefix="requestinfo.label.">
<fmt:message key="method"/>
<fmt:message key="requesturi"/>
</fmt:bundle>
十五.<fmt:setBundle>
作用:设定默认的数据来源,或者也可以将它设定到属性范围中.
语法:<fmt:setBundle basename="basename" [var="varName"]
[scope="{page|request|session|application}"] />
属性:1) basename: 要使用的资源名称;
2) var : 储存资源的名称;
3) scope : var变量的JSP范围;
说明:basename设定要使用的数据源, 和<fmt:bundle>用法相同。如果没有设定var时,那么设定好的数据来源
将会变成默认的数据来源,让在同一网页或同一属性范围中<fmt:message>都可以直接默认使用此数据来
源。相反,如果设定var时,那么将会把此数据来源存入varName中,当<fmt:message>要使用时,必须使
用bundle这个属性来指定。如:
<fmt:setBundle baseName="Resource" var="resource" scope="session"/>
<fmt:message key="str1" bundle="${resouce}"/>
如没有设定var时,则只须写成如下:
<fmt:setBundle baseName="Resource"/>
<fmt:message key="str1"/>
一般<fmt:bundle>和<fmt:setBundle>都可以搭配<fmt:setLocale>使用,当我们有多种语言的数据业来
源时,可以将文件名取成Resource_zh_TW.properties, Resource_en.properties和Resouce.properties
当我们将区域设定为zh_TW, 那么使用<fmt:setBundle>或<fmt:bundle>时,将会默认读取 Resource_zh_TW.properties资源文件,如果<fmt:setLocale>设定为en时,那么会默认抓取 Resource_en.properties来使用,最后如果设定的区域没有符合的文件名,将使用Resource.properties 来当做数据来源, 见fmt_i18n.jsp.
十六.<fmt:formatNumber>
作用:依据设定的区域将数字改为适当的格式。
语法:<fmt:formatNumber value="numbericValue" [type="{number|currency|percent}"]
示例:<fmt:formatNumber value="123" type="currency"/> 显示为 $123
十七.<fmt:parseNumber>
作用:将字符串类型的数字、货币或百分比,都转为数字类型。
语法:<fmt:parseNumber value="numericValue" [type="{number|currency|percent}"]
[pattern="customerPattern"]
.../>
示例:<fmt:parseNumber value="500,800"/>显示为: 500800
<fmt:parseNumber value="$5000" type="currency"/> 显示为:5000
十八.<fmt:formatDate>
作用:格式化日期,时间
语法:<fmt:formatDate value="date" [type="{time|date|both}"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
/>
示例:<jsp:useBean id="now" class="java.util.Date"/>
<fmt:formatDate value="${now}"/>
十九.<fmt:parseDate>
作用:将字符串类型的时间或日期都转为日期时间类型;
语法:<fmt:parseDate value="date"
示例:<fmt:parseDate value="2003/2/17"/>
二十. <fmt:setTimeZone>
作用:设定默认时区或是将时区储存至属性范围中,方便以后使用
语法:<fmt:setTimeZone value="timeZone" [var="varName"]
[scope="{page|request|session|application}"]/>
属性:1) value: 使用的时区:可以为EST, CST, MST和PST,为null时,则默认为GMT时区。
示例:<fmt:setTimeZone value="PST" scope="session"/>
二十一.<fmt:timeZone>
作用:设定暂时的时区;
语法:<fmt:timeZone value="timeZone">
本体内容
</fmt:timeZone>
示例:<fmt:timeZone value="PST">
<fmt:formatDate.../>
<fmt:formatDate.../>
...
</fmt:timeZone>
二十二.<sql:setDataSource>
作用:用来设定数据来源(DataSource)
语法:1) 直接使用已存在的数据来源
<sql:setDataSource dataSource="dataSource"
[var="varName"]
[scope="{page|request|session|application}"]/>
2) 使用JDBC方式,建立数据库联机
<sql:setDataSource url="jdbcUrl"
driver="driverClassName"
user="userName"
password="password"
[var="varName"]
[scope="{page|request|session|application}"]/>
示例:1) <sql:setDataSource dataSource="java:comp/env/jdbc/mysql"/>
2) <sql:setDataSource dataSource="jdbc:mysql://localhost/test,com.mysql.jdbc.Driver,root,"/>
dataSource="url,driver,user,password"
3) <sql:setDataSource url="jdbc:mysql://localhost/test"
driver="com.mysql.jdbc.Driver"
user="root"
password=""/>
二十三.<sql:query>
作用:查询数据库的数据.
语法:1) 没有本体内容
<sql:query sql="sqlQuery" var="varName"
[scope="{page|request|session|application}"]
[dataSource="dataSource"]
[maxRows="maxRows"]
[startRow="startRow"]/>
2) 本体内容为查询指令
<sql:query sql="sqlQuery" var="varName"
[scope="{page|request|session|application}"]
[dataSource="dataSource"]
[maxRows="maxRows"]
[startRow="startRow"]>
...
sqlQuery
...
</sql>
属性:1) sql: SQL语句(select);
2) dataSource: 数据来源;
3) maxRows: 设定最多可暂存的数据笔数;
4) startRow: 设定数据从第几笔开始, 以0为第一笔数据;
5) var: 储存查询结果, 必须的;
6) scope: var变量的JSP范围;
查询结果存放在指定名称的属性中后,可以通过以下属性访问查询结果:
rows: 以字段名称当做索引的查询结果;
rowsByIndex: 以数字当作索引的查询结果;
columnNames: 字段名称;
rowCount: 查询到的数据笔数;
limitedByMaxRows: 取出最大数据笔数的限制;
二十四.<sql:update>
作用:执行修改操作(update,delete,create table均可)
语法:1)没有本体内容
<sql:update sql="sqlUpdate" [var="varName"]
[scope="{page|request|session|application}"]
[dataSource="dataSource"]/>
2)本体内容为查询指令
<sql:update sql="sqlUpdate" [var="varName"]
[scope="{page|request|session|application}"]
[dataSource="dataSource"]>
...
sqlUpdate
...
</sql:query>
属性:1) sql: SQL语法(update,insert,delete...)
2) dataSource: 数据来源;
3) var: 储存改变的数据笔数;
4) scope: var变量的JSP范围;
二十五. <sql:transaction>
作用:提供事务支持,保证多个数据操作的完整性. <sql:transaction>主要是将所有必须同时执行的交易放在它的本体内容中,当本体内容有错误发生时,将
不会执行任何一个SQL语句,所以可保障交易机制的安全性。
语法:<sql:transaction [dataSource="dataSource"]
[isolation="{read_committed|read_uncommitted|repeatable|serializable}"]>
<sql:query>or<sql:update>
</sql:transaction>
二十六. <x:parse>
作用:解析xml文件;
语法:1) <x:parse doc="XMLDocument"
[var="var' [scope="{page|request|session|application}"]
.../>
2) <x:parse [var="var' [scope="{page|request|session|application}"]
...>
欲被解析的XML文件
</x:parse>
属性:1) doc: xml文件;
2) var: 储存解析后的XML文件
3) scope: var变量的JSP范围
示例:1) <c:import var="sample" url="http://www.javaw.cn/web.xml"/>
<x:parse doc="${sample}" var="sampleXml"/>
2) <x:parse doc="${sample}" var="sampleXml">
<c:import url="http://www.javaw.cn/web.xml"/>
</x:parse>
二十七.<x:out>
作用:取出XML中的字符串.
语法:<x:out select="XPathExpression" [escapeXml="{true|false}"]/>
属性:1) select: XPath语句;
2) escapeXml: 是否转换特殊字符;
示例:<x:parse var="sampleXml">
<item>
<name>car</name>
<price>10000</price>
</item>
</x:parse>
显示<name>的内容,
1) <x:out select="$sampleXml//name"/>
2) <x:out select="$sampleXml/item/name"/>
二十八.<x:set>
作用:取出XML中的字符串, 储存至属性范围中
语法:<x:set select="XPathExpression" var="var" [scope="{page|request|session|application}"]/>
属性:1) select: XPath语句;
2) var: 将从XML文件中取得的内容储存至varName中;
3) scope: var变量的JSP范围;
示例:<x:parse var="sampleXml">
<item>
<name>car</name>
<price>10000</price>
</item>
</x:parse>
显示<name>的内容,
1) <x:out select="$sampleXml//name"/>
2) <x:out select="$sampleXml/item/name"/>
三十. fn:contains()
作用:判断某字符串是否在一字符串之中;
语法:${fn:contains(string, substring)} => boolean
属性:1) string: 原输入的字符串;
2) substring: 测试用的字符串;
3) Result: 回传string是否包含substring. 若有,则回传true; 若无,则回传false;
三十一. fn:containsIgnoreCase()
作用:判断某字符串是否在已有字符串之中,并忽略其大小写;
语法:${fn:containsIgnoreCase(string, substring)} => boolean
三十二. fn:startsWith(string, prefix)
作用:判断一字符串是否以某一字符串为开头;
语法:${fn:startsWith(string, prefix)} => boolean
三十三. fn:endsWith(string, suffix)
作用:判断一字符串是否以某一字符串为结尾;
语法:${fn:endsWith(string, suffix)} => boolean
三十四. fn:escapeXml(String)
作用:用来转换转义符,例如:将<,>,',"和&转换成<,>,',"和&
语法: ${fn:escapeXml(String) => String
三十五. fn:indexOf(string, substring)
作用:回传某字符串到一字符串第一次吻合的位置;
语法: ${fn:indexOf(string, substring)} => int
三十六. fn:split(string, delimiters)
作用:将字符串分离成一字符串数组;
语法: ${fn:split(string, delimiters)} => string[]
三十七. fn:join(array, separator)
作用:将数组中的全部元素以指定字符串作为连接符,回传结合后的字符串;
语法: ${fn:join(array, separator)} => string
三十八. fn:replace(inputString, beforeSubstring, afterSubstring)
作用:将字符串中的某些子字符串用另一字符串取代;
语法: ${fn:replace(inputString, beforeSubstring, aterSubstring)} => string
属性:1) inputString: 原输入的字符串;
2) beforeString: 要替换的字符串;
3) afterSubstring: 替换成为的字符串;
三十九. fn:trim(string)
作用:去除字符串的前后空白;
语法: ${fn:trim(string)}
四十. fn:substring(string, beginIndex, endIndex)
作用:抽取字符串中的某一子字符串;
语法: ${fn:substring(string, beginIndex, endIndex)} => string
四十一. fn:substringAfter(string, substring)
作用:抽取字符串中某子字符串之后的字符串;
语法:${fn:substringAfter(string, substring)} => string
属性:1) string: 原输入的字符串;
2) substring: 某子字符串;
四十二. fn:substringBefore(string, substring)
作用:抽取字符串中某子字符串之前的字符串;
语法:${fn:substringBefore(string, substring)} => string
属性:1) string: 原输入的字符串;
2) substring: 某子字符串;
四十三. fn:toLowerCase(string)
作用:转换为小写字符;
语法:${fn:toLowerCase(string)} => string
四十四. fn:toUpperCase(string)
作用:转换为大写字符;
语法:${fn:toUpperCase(string)} => string
作用:显示数据的内容,就像是<%=scripting-language%>一样;
语法:1) 没有本体(body)内容
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"]/>
2) 有本体(body)内容
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>
属性:1) value: 需要显示出来的值;
2) default: 如果value的值为null, 则显示default的值;
3) escapeXml: 是否转换特殊字符, 如:< 转换成 , 默认情况下其值为true;
Null和错误处理:
假若value为null, 会显示default的值,假若没有设定default的值,则会显示一个空的字符串;
范例:<c:out value="Hello JSP 2.0!!"/> <!--在网页上显示Hello JSP2.0!!-->
<c:out value="${3+5}"/> <!--在网页上显示8;-->
<c:out value="${param.data}" default="No Data"/>
<c:out value="<p>有特殊字符</p>"/>
<c:out value="<p>有特殊字符</p>" escapeXml="false"/>
二. <c:set>
作用:将变量储存至JSP范围中或是JavaBean的属性中;
语法:1) 在value的值储存至范围为scope的varName变量之中
<c:set value="value" var="varName" [scope="{page|request|session|application}"]/>
2) 在本体内容的值储存至范围为scope的varName变量之中
<c:set var="varName" [scope="{page|request|session|application}"]>
...本体内容
</c:set>
3) 将value的值储存至target对象的属性中
<c:set value="value" target="target" property="propertyName"/>
4) 将本体内容的数据储存至target对象的属性中
<c:set target="target" property="propertyName">
...本体内容
</c:set>
属性:1) value: 要被储存的值;
2) var : 欲存入的变量名称; 不能使用表达式来表示;
3) scope: var变量的JSP范围,默认值是page; 不能使用表达式来表示;
4) target:为一JavaBean或java.util.Map对象;
5) property: 指定target对象的属性;
范例:<c:set var="number" scope="request" value="${1+1}"/>
<c:set var="number" scope="session">
${3+5}
</c:set>
<c:set var="number" scope="request" value="${param.number}"/>
<c:set target="${user}" property="name" value="${param.Username}"/>
三. <c:remove>
作用:移除变量;
语法:<c:remove var="varName" [scope="{page|request|session|application}"]/>
属性:1) var : 欲移除的变量名称; 不能使用表达式来表示;
2) scope: var变量的JSP范围,默认值是page; 不能使用表达式来表示;
四. <c:catch>
作用:处理产生错误的异常状况,并且将错误信息储存至varName变量中。
语法:<c:catch [var="varName"]>
...欲抓取错误的部分
</c:catch>
属性:1) var: 用来储存错误信息的变量;
五. <c:if>
作用:和一般在程序中使用的if一样。
语法:1) 没有本体内容(body)
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
2) 有本体内容(body)
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
本体内容
</c:if>
属性:1) test: 如果表达式的结果为true, 则执行本体内容,false相反
2) var : 用来储存test运算后的结果,即true或false;
3) scope: var变量的JSP范围
六. <c:forEach>
作用:循环控制,它可以将集合中的成员循序浏览一遍, 当条件符合时,就会持续重复执行<c:forEach>的本体内容。
语法:1) 迭代集合对象之所有成员
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>
本体内容
</c:forEach>
2) 迭代指定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
本体内容
</c:forEach>
属性:1) var : 用来存放现在指到的成员
2) items : 被迭代的集合对象
3) varStatus: 用来存放现在指到的相关成员信息, 它有四个属性:
index: 现在指到成员的索引;
count: 总共指到成员的总数;
first: 现在指到的成员是否为第一个成员;
last: 现在指到的成员是否为最后一个成员;
(见c_forEach5.jsp)
4) begin: 开始的位置;
5) end : 结束的位置;
6) step : 每次迭代的间隔数;
注意:1) varName的范围只存在<c:forEach>...</c:forEach>的本体中,如果超出了本体,则不能再取得varName的值。
<c:forEach items=${atts}" var="item">
</c:forEach>
${item}<br>
${item}则不会显示item的内容
演示一下:<c:forEach>配套List, Set以及Map时使用的情景。 ???????????????????????????????????????????????????????????
七. <c:import>
作用:把其它静态或动态文件包含至本身JSP网页。和<jsp:include>相比,它能包含不同web application或者是其他网站的文件。
语法:1) <c:import url="url" [context="context"] [var="varName"] [scope="{page|request|session|application}"]
[charEncoding="charEncoding"]>
本体内容
</c:import>
2) <c:import url="url" [context="context"] varReader="varReaderName" [charEncoding="charEncoding"]>
本体内容
</c:import>
属性:1) url: 一文件被包含的地址;
2) context: 相同container下,其他web站点必须以"/"开头;
3) var : 储存被包含的文件的内容(以String类型存入)。
当var属性存在的时候,被包含的文件内容导入后不会输出在网页上,而是以String的形式
4) scope : var变量的JSP范围;
5) charEncoding: 被包含文件之内容的编码格式;
6) varReader : 储存被包含的文件的内容(以Reader类型存入)
示例: 1) <c:import url="http://java.sun.com"/>
2) <c:import url="ftp://202.168.0.202/data.txt"/> <!--支持ftp协议-->
3) <c:import url="Hello.jsp"/>
4) <c:import url="images/hello.txt"/>
5) <c:import url="/jsp/index.html" context="/others"/>
导入同一个服务器下others应用下的jsp/index.html文件内容,
注意:
a. 被包含的web站点必须在server.xml中定义过;
b. <context>的crossContext属性值必须为true。这样,others应用下的文件
才可以被其他web站点调用。
...
<context path="/others" docBase="others" crossContext="true" reloadable="true"/>
...
八. <c:url>
作用:用来产生URL, 以前我们必须使用相对地址或是绝对地址去取得需要的图文件或文件,现在我们可以直接利用<c:url>从Web站点的角度来设定需要的图文件或文件的地址。
语法:1) <c:url value="value" [context="context"] [var="varName"]
[scope="{page|request|session|application}"]/>
2) <c:url value="value" [context="context"] [var="varName"]
[scope="{page|request|session|application}"]>
<c:param>标签
</c:url>
属性:1) value; 执行的URL;
2) context: 相同container下,其他web站台必须以"/"开头;
3) var: 储存被包含文件的内容(以String类型存入)
4) scope: var变量的JSP范围
示例:1) <c:url value="http://www.javaw.cn">
<c:param name="param" value="value"/>
</c:url>
执行结果产生一个网址为:http://www.javaw.cn?param=value
2) <a href="
<c:url value="http://www.javaw.cn">
<c:param name="param" value="value"/>
</c:url>Java技术论坛
</a>
执行结果产生一个网址为:<a href="http://www.javaw.cn?param=value">Java技术论坛</a>
3) <img src="<c:url value="/images/code.gif"/>"/>
执行结果产生一个网址为:<img src="/应用名称/images/code.gif"/>
九. <c:redirect>
作用:将客户端的请求从一个JSP网页导向到其他文件
语法:1) 没有本体内容
<c:redirect url="url" [context="context"]/>
2) 本体内容代表查询字符串参数
<c:redirect url="url" [context="context"]>
<c:param>
</c:redirect>
属性:1) url: 导向的目标地址;
2) context: 相同container下,其他web站点必须以"/"开头
示例:<c:redirect url="http://localhost:8080">
<c:param name="param" value="value"/>
</c:redirect>
十. <fmt:setLocale>
作用:设定用户的语言区地区。
语法:<fmt:setLocale value="local" [variant="variant"]
[scope="{page|request|session|application}"]/>
属性:1) value: 地区代码。其中最少要有两个字母的语言代码,如:zh、en, 然后也可以再加上两个字母的国家和地区代码,如:US, TW, 两者可以由"-"或"_"
相连接起来,例如:zh_TW, zh_CN, en, en_US. 假若value为null时,则使用执行中的默认地域(locale)
2) varient: 供货商或浏览器的规格,例:WIN代表Windows, Mac代表Macintosh.
3) scope: 地区设定的套用范围;
十一. <fmt:requestEncoding>
作用:设定字符串编码,功能和ServletRequest.setCharacterEncoding()相同;
语法: <fmt:requestEncoding [value="charseName"]/>
属性:1) value: 字符串编码,当我们设定value为GB2312时,表示将所有传送过来的字符串皆用GB2312编码处理,如果没有设定value属性,则它将会自动去寻找
合适的编码方式。
十二. <fmt:message>
作用:从指定的资源中把特定关键字中的值抓取出来;
语法:1) <fmt:message key="messageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]/>
2) <fmt:message key="meesageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]>
<fmt:param>
</fmt:message>
3) <fmt:message key="meesageKey" [bundle="resourceBundle"]
[var="varName"] [scope="{page|request|session|application}"]>
索引
(<fmt:param>标签)
</fmt:message>
属性: 1) key: 索引;
2) bundle: 使用的数据来源;
3) var: 用来储存国际化信息;
4) scope: var变量的JSP范围;
十三. <fmt:param>
作用:动态设定数据来源中抓出内容的参数;
语法:1) 通过value属性设定参数值
<fmt:param value="messageParameter"/>
2) 通过本体内容设定参数值
<fmt:param>
本体内容
</fmt:param>
示例:1) Str3=today is {0, date}
其中{0,date}表示为一个动态变量, 0代表第一个动态变量;date代表该动态变量的类型。
十四. <fmt:bundle>
作用:设定本体内容的数据来源;
语法:<fmt:bundle basename="basename" [prefix="prefix"]>
本体内容
</fmt:bundle>
属性:1) basename: 要使用的资源名称,如果我们的properties文件为Resource.properties, 那么
basename的值为Resource. basename的值千万不可有任何文件类型。
2) prefix: 设定前置关键字。
例:当properties中内容如下:
requestinfo.label.method=Method:
requestinfo.label.requesturi=Request URI:
那么我们可以写成如下方式将其内容显示出来:
<fmt:bundle basename="Resource" prefix="requestinfo.label.">
<fmt:message key="method"/>
<fmt:message key="requesturi"/>
</fmt:bundle>
十五.<fmt:setBundle>
作用:设定默认的数据来源,或者也可以将它设定到属性范围中.
语法:<fmt:setBundle basename="basename" [var="varName"]
[scope="{page|request|session|application}"] />
属性:1) basename: 要使用的资源名称;
2) var : 储存资源的名称;
3) scope : var变量的JSP范围;
说明:basename设定要使用的数据源, 和<fmt:bundle>用法相同。如果没有设定var时,那么设定好的数据来源
将会变成默认的数据来源,让在同一网页或同一属性范围中<fmt:message>都可以直接默认使用此数据来
源。相反,如果设定var时,那么将会把此数据来源存入varName中,当<fmt:message>要使用时,必须使
用bundle这个属性来指定。如:
<fmt:setBundle baseName="Resource" var="resource" scope="session"/>
<fmt:message key="str1" bundle="${resouce}"/>
如没有设定var时,则只须写成如下:
<fmt:setBundle baseName="Resource"/>
<fmt:message key="str1"/>
一般<fmt:bundle>和<fmt:setBundle>都可以搭配<fmt:setLocale>使用,当我们有多种语言的数据业来
源时,可以将文件名取成Resource_zh_TW.properties, Resource_en.properties和Resouce.properties
当我们将区域设定为zh_TW, 那么使用<fmt:setBundle>或<fmt:bundle>时,将会默认读取 Resource_zh_TW.properties资源文件,如果<fmt:setLocale>设定为en时,那么会默认抓取 Resource_en.properties来使用,最后如果设定的区域没有符合的文件名,将使用Resource.properties 来当做数据来源, 见fmt_i18n.jsp.
十六.<fmt:formatNumber>
作用:依据设定的区域将数字改为适当的格式。
语法:<fmt:formatNumber value="numbericValue" [type="{number|currency|percent}"]
示例:<fmt:formatNumber value="123" type="currency"/> 显示为 $123
十七.<fmt:parseNumber>
作用:将字符串类型的数字、货币或百分比,都转为数字类型。
语法:<fmt:parseNumber value="numericValue" [type="{number|currency|percent}"]
[pattern="customerPattern"]
.../>
示例:<fmt:parseNumber value="500,800"/>显示为: 500800
<fmt:parseNumber value="$5000" type="currency"/> 显示为:5000
十八.<fmt:formatDate>
作用:格式化日期,时间
语法:<fmt:formatDate value="date" [type="{time|date|both}"]
[dateStyle="{default|short|medium|long|full}"]
[timeStyle="{default|short|medium|long|full}"]
/>
示例:<jsp:useBean id="now" class="java.util.Date"/>
<fmt:formatDate value="${now}"/>
十九.<fmt:parseDate>
作用:将字符串类型的时间或日期都转为日期时间类型;
语法:<fmt:parseDate value="date"
示例:<fmt:parseDate value="2003/2/17"/>
二十. <fmt:setTimeZone>
作用:设定默认时区或是将时区储存至属性范围中,方便以后使用
语法:<fmt:setTimeZone value="timeZone" [var="varName"]
[scope="{page|request|session|application}"]/>
属性:1) value: 使用的时区:可以为EST, CST, MST和PST,为null时,则默认为GMT时区。
示例:<fmt:setTimeZone value="PST" scope="session"/>
二十一.<fmt:timeZone>
作用:设定暂时的时区;
语法:<fmt:timeZone value="timeZone">
本体内容
</fmt:timeZone>
示例:<fmt:timeZone value="PST">
<fmt:formatDate.../>
<fmt:formatDate.../>
...
</fmt:timeZone>
二十二.<sql:setDataSource>
作用:用来设定数据来源(DataSource)
语法:1) 直接使用已存在的数据来源
<sql:setDataSource dataSource="dataSource"
[var="varName"]
[scope="{page|request|session|application}"]/>
2) 使用JDBC方式,建立数据库联机
<sql:setDataSource url="jdbcUrl"
driver="driverClassName"
user="userName"
password="password"
[var="varName"]
[scope="{page|request|session|application}"]/>
示例:1) <sql:setDataSource dataSource="java:comp/env/jdbc/mysql"/>
2) <sql:setDataSource dataSource="jdbc:mysql://localhost/test,com.mysql.jdbc.Driver,root,"/>
dataSource="url,driver,user,password"
3) <sql:setDataSource url="jdbc:mysql://localhost/test"
driver="com.mysql.jdbc.Driver"
user="root"
password=""/>
二十三.<sql:query>
作用:查询数据库的数据.
语法:1) 没有本体内容
<sql:query sql="sqlQuery" var="varName"
[scope="{page|request|session|application}"]
[dataSource="dataSource"]
[maxRows="maxRows"]
[startRow="startRow"]/>
2) 本体内容为查询指令
<sql:query sql="sqlQuery" var="varName"
[scope="{page|request|session|application}"]
[dataSource="dataSource"]
[maxRows="maxRows"]
[startRow="startRow"]>
...
sqlQuery
...
</sql>
属性:1) sql: SQL语句(select);
2) dataSource: 数据来源;
3) maxRows: 设定最多可暂存的数据笔数;
4) startRow: 设定数据从第几笔开始, 以0为第一笔数据;
5) var: 储存查询结果, 必须的;
6) scope: var变量的JSP范围;
查询结果存放在指定名称的属性中后,可以通过以下属性访问查询结果:
rows: 以字段名称当做索引的查询结果;
rowsByIndex: 以数字当作索引的查询结果;
columnNames: 字段名称;
rowCount: 查询到的数据笔数;
limitedByMaxRows: 取出最大数据笔数的限制;
二十四.<sql:update>
作用:执行修改操作(update,delete,create table均可)
语法:1)没有本体内容
<sql:update sql="sqlUpdate" [var="varName"]
[scope="{page|request|session|application}"]
[dataSource="dataSource"]/>
2)本体内容为查询指令
<sql:update sql="sqlUpdate" [var="varName"]
[scope="{page|request|session|application}"]
[dataSource="dataSource"]>
...
sqlUpdate
...
</sql:query>
属性:1) sql: SQL语法(update,insert,delete...)
2) dataSource: 数据来源;
3) var: 储存改变的数据笔数;
4) scope: var变量的JSP范围;
二十五. <sql:transaction>
作用:提供事务支持,保证多个数据操作的完整性. <sql:transaction>主要是将所有必须同时执行的交易放在它的本体内容中,当本体内容有错误发生时,将
不会执行任何一个SQL语句,所以可保障交易机制的安全性。
语法:<sql:transaction [dataSource="dataSource"]
[isolation="{read_committed|read_uncommitted|repeatable|serializable}"]>
<sql:query>or<sql:update>
</sql:transaction>
二十六. <x:parse>
作用:解析xml文件;
语法:1) <x:parse doc="XMLDocument"
[var="var' [scope="{page|request|session|application}"]
.../>
2) <x:parse [var="var' [scope="{page|request|session|application}"]
...>
欲被解析的XML文件
</x:parse>
属性:1) doc: xml文件;
2) var: 储存解析后的XML文件
3) scope: var变量的JSP范围
示例:1) <c:import var="sample" url="http://www.javaw.cn/web.xml"/>
<x:parse doc="${sample}" var="sampleXml"/>
2) <x:parse doc="${sample}" var="sampleXml">
<c:import url="http://www.javaw.cn/web.xml"/>
</x:parse>
二十七.<x:out>
作用:取出XML中的字符串.
语法:<x:out select="XPathExpression" [escapeXml="{true|false}"]/>
属性:1) select: XPath语句;
2) escapeXml: 是否转换特殊字符;
示例:<x:parse var="sampleXml">
<item>
<name>car</name>
<price>10000</price>
</item>
</x:parse>
显示<name>的内容,
1) <x:out select="$sampleXml//name"/>
2) <x:out select="$sampleXml/item/name"/>
二十八.<x:set>
作用:取出XML中的字符串, 储存至属性范围中
语法:<x:set select="XPathExpression" var="var" [scope="{page|request|session|application}"]/>
属性:1) select: XPath语句;
2) var: 将从XML文件中取得的内容储存至varName中;
3) scope: var变量的JSP范围;
示例:<x:parse var="sampleXml">
<item>
<name>car</name>
<price>10000</price>
</item>
</x:parse>
显示<name>的内容,
1) <x:out select="$sampleXml//name"/>
2) <x:out select="$sampleXml/item/name"/>
三十. fn:contains()
作用:判断某字符串是否在一字符串之中;
语法:${fn:contains(string, substring)} => boolean
属性:1) string: 原输入的字符串;
2) substring: 测试用的字符串;
3) Result: 回传string是否包含substring. 若有,则回传true; 若无,则回传false;
三十一. fn:containsIgnoreCase()
作用:判断某字符串是否在已有字符串之中,并忽略其大小写;
语法:${fn:containsIgnoreCase(string, substring)} => boolean
三十二. fn:startsWith(string, prefix)
作用:判断一字符串是否以某一字符串为开头;
语法:${fn:startsWith(string, prefix)} => boolean
三十三. fn:endsWith(string, suffix)
作用:判断一字符串是否以某一字符串为结尾;
语法:${fn:endsWith(string, suffix)} => boolean
三十四. fn:escapeXml(String)
作用:用来转换转义符,例如:将<,>,',"和&转换成<,>,',"和&
语法: ${fn:escapeXml(String) => String
三十五. fn:indexOf(string, substring)
作用:回传某字符串到一字符串第一次吻合的位置;
语法: ${fn:indexOf(string, substring)} => int
三十六. fn:split(string, delimiters)
作用:将字符串分离成一字符串数组;
语法: ${fn:split(string, delimiters)} => string[]
三十七. fn:join(array, separator)
作用:将数组中的全部元素以指定字符串作为连接符,回传结合后的字符串;
语法: ${fn:join(array, separator)} => string
三十八. fn:replace(inputString, beforeSubstring, afterSubstring)
作用:将字符串中的某些子字符串用另一字符串取代;
语法: ${fn:replace(inputString, beforeSubstring, aterSubstring)} => string
属性:1) inputString: 原输入的字符串;
2) beforeString: 要替换的字符串;
3) afterSubstring: 替换成为的字符串;
三十九. fn:trim(string)
作用:去除字符串的前后空白;
语法: ${fn:trim(string)}
四十. fn:substring(string, beginIndex, endIndex)
作用:抽取字符串中的某一子字符串;
语法: ${fn:substring(string, beginIndex, endIndex)} => string
四十一. fn:substringAfter(string, substring)
作用:抽取字符串中某子字符串之后的字符串;
语法:${fn:substringAfter(string, substring)} => string
属性:1) string: 原输入的字符串;
2) substring: 某子字符串;
四十二. fn:substringBefore(string, substring)
作用:抽取字符串中某子字符串之前的字符串;
语法:${fn:substringBefore(string, substring)} => string
属性:1) string: 原输入的字符串;
2) substring: 某子字符串;
四十三. fn:toLowerCase(string)
作用:转换为小写字符;
语法:${fn:toLowerCase(string)} => string
四十四. fn:toUpperCase(string)
作用:转换为大写字符;
语法:${fn:toUpperCase(string)} => string
发表评论
-
Don't know how to iterate over supplied "items" in <forEach>
2011-03-04 20:12 1697是传值问题,传的不是集合,所以不能遍历 -
JSTL对国际化的支持
2010-09-07 18:17 793login.jsp <%@ page languag ... -
EL表达式(转)
2010-08-30 23:09 976EL 全名为Expression Language EL ... -
JSTL自定义函数
2010-08-30 23:07 1024自定义函数 定义一个类MyFuctions,方法必须是静态的 ... -
jstl_core
2010-08-30 23:06 844<%@ page language="ja ... -
jstl_fmt
2010-08-30 23:04 735<%@ page language="java ...
相关推荐
值得注意的是,在使用这些标签时,需要在JSP页面的顶部引入JSTL标签库。如:***"%>。这样才能够正确地使用JSTL提供的标签功能。JSTL标签库在JSP开发中非常实用,可以大大简化JSP页面的代码,提高开发效率和页面的可...
### JSTL常用标签汇总详解 #### 一、表达式操作 ##### 1. `<c:out>` **作用**:用于显示数据的内容。 **语法**: - **语法1(无本体内容)**: ```xml [escapeXml="{true|false}"] [default="defaultValue"] /> ...
### JSTL标签库知识点详解 #### 一、概述 JSTL(JavaServer Pages Standard Tag Library)是一种标准标签库,旨在简化JavaServer Pages (JSP) 的开发工作。通过提供一组预定义的标签,JSTL使得开发者能够更加高效地...
JSTL,全称JavaServer Pages Standard Tag Library,是一个用于JSP的标准标签库,它提供了许多标签来简化JSP页面的编程。以下是对标题和描述中提到的JSTL核心标签库的一些详细解释: 1. ****: 这个标签用于在JSP...
### JSTL标签详解 JSTL(JavaServer Pages Standard Tag Library)是为简化Web应用程序开发而设计的一组标准标签库。它提供了多种功能,包括表达式操作、流程控制、迭代操作以及URL操作等,极大地提高了JSP页面的...
**JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它提供了一系列的标签来简化JSP页面中的...在实际项目中,结合使用EL(Expression Language)可以进一步增强JSTL标签的功能。
JSTL,全称JavaServer Pages Standard Tag Library,...以上就是JSTL的一些核心标签及其用法,它们极大地简化了JSP页面中的Java代码,提高了代码的可读性和维护性。在实际开发中,熟练掌握这些标签能有效提升开发效率。
JSTL标准EL函数jar包及说明方法,在资源汇总还有一个案例进行说明,请下载ELJSTL的jar包使用案例及核心标签库
JSTL由多个标签库组成,包括核心标签库、格式化标签库、XML标签库和SQL标签库,每个标签库都包含一系列功能性的标签,这些标签能够帮助开发者在JSP页面中实现数据遍历、条件判断、国际化等常见功能。 J2EE(Java ...
在这个“ssh框架需要的jar包汇总”中,我们看到的是一个基本的SSH开发环境所需的库文件集合,还包括了与MySQL数据库连接以及JSTL(JavaServer Pages Standard Tag Library)标签的支持。 首先,让我们逐一解析这些...
JSTL是一套标准标签库,包括核心标签、XML标签、函数标签和JDBC标签等,可以替代脚本元素,提高代码可读性和可维护性。 ### 5. JSP内置对象 JSP提供了九个内置对象,如`request`、`response`、`session`、`...
7. 绑定值到视图的对比:Struts1 使用标准 JSP 机制把对象绑定到视图页面,而 Struts2 使用“ValueStack”技术,使标签库能够访问值,而不需要把对象和视图页面绑定在一起。 8. 类型转换的对比:Struts1 ActionForm ...
- 利用自定义标签或JSTL(JavaServer Pages Standard Tag Library)简化页面代码。 - 避免在JSP页面中编写大量Java代码,保持页面与逻辑分离。 通过这些知识点的汇总,我们可以全面了解JSP开发技术的核心概念及其在...
4. JSP:基本语法、EL表达式、JSTL标签库。 5. MVC模式:Model1、Model2(MVC)的架构理解。 6. JDBC:数据库连接、事务管理、预编译SQL、批处理。 7. Web安全:CSRF、XSS攻击的防范,Session与Cookie的使用。 8. ...
Java作为一门广泛使用的编程语言,其面试题涵盖了众多的知识领域,包括基础语法、面向对象、...同时,对于JSP和J2EE,面试可能会涉及Web开发中的Servlet、JSP生命周期、EL表达式、JSTL标签库以及MVC设计模式的应用。
- JSTL提供了标准的标签库,减少硬编码,提高代码可读性。 6. **实例解析** "编程资料汇总.chm"可能包含了JSP的实例代码和详细解释,帮助读者理解如何在实际项目中应用上述概念。 7. **小游戏:stanley博士的家....
这些项目覆盖了JSP的基础和进阶内容,如JSP指令、脚本元素、EL表达式、JSTL标签库、Servlet、JavaBean、MVC模式、DAO模式以及JDBC数据库操作等。通过实践这些项目,学习者能够提升对Java Web开发的理解,掌握开发...