URL相关的标签:
URL相关的标签主要用来将其他文件包含进来,或者提供页面之间的重定位以及URL地址的生成,参数的输出等.一般包括如下几个标签.
<c:import>标签: 与传统JSP页面重的<jsp:include>标签类似.
<c:redirect>标签: 进行页面的重定位.
<c:url> : 主要用来重写URL地址.
<c:param> : 一般param标签会与其他标签一起配套使用,用于参数值的传递.
<c:import> 标签:
该标签用于把其他今天文件包含到该文件当中,它与传统的<jsp:include>相类似,不同的是<jsp:include>标签只能用来包括该应用中的其他文件,而<c:import>还可以包含外部站点中的静态文件,所以它的功能更加强大.使用格式如下:
<c:import url=”url”[context=”context”] [var=”varName”] [scope=”page|request|session|application”][varReader=”varReader”] [charEncodion=”charEncoding”]>
Body content
</c:import>
标签中的属性描述如下:
url: 待引用静态文件的URL地址.
context: 当采用相对路径访问一个外部静态文件时,这里的context指定这个外部文件的名称.
var: 当使用字符串输出时,把输出的内容存储在这个var指定的变量中.
scope: 指定var参数变量的有效范围.
varReader: 这个属性指定的参数变量类型是Reader,可以用于读取文件的内容.
charEncoding: 引入文件所采用的字符编码.
Import标签即可以采用相对路径也可以采用绝对路径来引用本地点中的任何静态文件,还可以使用绝对路径引用外部站点中的静态文, 甚至可以是ftp站点中的文件,例如:<c:importvar=”myurl” url=”http://www.163.com” />就是引用http://www.163.com 站点的主页面.
可以把引用文件中的内容赋值给var属性指定的变量,然后进行读取,也可以赋值给varReader指定的Reader类型的变量,然后进行相应的读取.
有时引入的文件在本地显示会出现乱码,这时可以通过charEncoding来指定这些内容所采用的字符集编码.
<c:redirect>和<c:param>标签:
Redirect标签用来进行页面之间的重定向,它与传统JSP程序重的<jsp:redirect>标签功能相类似,param标签是与redirect一起使用的,它用来进行参数值的传递,redirect标签的使用格式如下:
<c:redirect url=”url”[context=”context”]/>
在redirect标签中指定param参数的使用格式如下:
<c:redirect url=”url”[]context=”context”>
<c:param name=”paramName”value=”value”/>
</c:redirect>
例: [通过创建c_redirect1.jsp 和c_redirect2.jsp 两个文件说明]
c_redirect1.jsp文件内容如下:
<c:redirecturl=”c_redirect2.jsp” >
<c:param name=”userName”value=”admin”/>
</c:redirect>
c_redirect2.jsp 文件内容如下:
<body>
userName=<c:out value=”${param.userName}”>
</body>
c_redirect1.jsp页面文件内容不会显示,因为直接重定向到c_redirect2.jsp,重定向c_redirect2.jsp后,页面中输出 userName=admin
<c:url>标签:
这个标签主要用来重写url地址,使用格式如下:
<c:url value=”value”[context=”context”] [var=”varName”] [scope=”page|request|session|application”]/>
当进行参数传递时,使用格式如下:
<c:url value=”value”[context=”context”] [var=”varName”] [scope=”page|request|session|application”]>
<c:param name=”paramName”value=”value” />
</c:url>
标签中使用的属性描述如下:
value: 将要处理的URL地址.
context: 当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称.
var: 给这个URL地址起一个标识.
Scope: 规定这个var属性所指定变量的有效范围.
创建一个c_url.jsp,其源代码如下:
<%@ taglib prefix=”c”uri=”http://java.sun.com/jsp/jstl/core” %>
<c:url var=”url” value=”c_url2.jsp”scope=”session” >
<c:param name=”userName”value=”admin”/>
<c:param name=”password”value=”123456”/>
</c:url>
<c:out value=”${url}”/>
<a herf=’<c:out value=”${url}”/>’>Linkto other page</a>
代码说明: url标签可以指定一个变量(var属性指定)来把url地址保存,并且可以指定这个变量的有效范围为session ,所以当需要用到这个url地址时,就可以使用session.getAttribute(varName)方法来获取这个地址,所以一般需要重复使用同一个url地址才会使用<c:url>标签的功能.
国际化( I18N )标签库
国际化标签包括:
<fmt:setLocale>: 用于设置当前本地化环境,为对应的java类javax.servlet.jsp.jstl.fmt.locale配置参数值,这个指定的参数由jsp运行时维护,用于确定各个jstl标签使用的本地化环境.
<fmt:bundle>: 指定消息资源使用的文件.
<fmt:message>: 显示消失资源文件中指定key的消息,支持带参数的消息.
<fmt:param>: 给带参数的消息设置参数值.
<fmt:setBundle>: 设置消息资源文件.
设置本地化环境标签<fmt:setLocale>
HTML请求到达服务器时,浏览器提供的HTTP首部可以指出用户的首选本地化环境(可能是多个本地化环境的列表).这个列表放在Accept-Language HTTP首部中,jsp容器会访问这个首部信息,如果没有使用标签<fmt:setLocale>明确地指出引用本地化环境,JSTL标签就会使用这个列表中的首选本地化环境.
<fmt:setLocale>标签专门用于设置当前本地化环境,基本使用格式如下:
<fmt:setLocale value=”…localevalue…” [variant=”…variant value…”] [scope=”page|request|session|application”]/>
<fmt:setLocale>标签的属性描述如下:
value: 这个属性是必须设置的,它用来设置本地环境名,例如en_US 或者zh_HK.
variant: 这个属性是可选的,而且很少使用.
scope: 指定value设置的本地化环境名的有效范围,默认为page,即本页面,如果把scope设置为session,则表示同一个用户发出的所有请求都具有相同的本地化环境.
执行信息资源标签<fmt:bundle>
一旦已经设置了web引用的本地化环境后,就可以使用<fmt:bundle>标签了,其体重可以包括一些调用本地化文本的<fmt:message>标签,使用格式如下:
<fmt:bundle basename=”…thebundle’s base name…” [prefix=”…prefix name…”]>
<fmt:message key=”…key name…”/>
</fmt:bundle>
属性描述如下:
Basename: 资源文件(这里使用文件,而不是类)的基名,例如,某资源文件Res_zh_CN.property,则基名为Res.
prefix: 这个设置是可选的,如果指定这个属性,就会为标签体中嵌套的<fmt:message>标签附加一个前缀.
当<fmt:bundle>标签中嵌套<fmt:message>标签时,这时<fmt:message>标签默认使用<fmt:bundle>标签中的basename所指定的资源文件.
获取资源属性值标签<fmt:message>:
该标签用于显示本地化的文本,它通过key属性来取得资源文件中相应的消息<fmt:message>标签的一般使用格式如下:
<fmt:message key=”…name ofproperty…” [bundle=”…resourceBundle…”][var=”…varible name…”] [scope=”…scope ofvar…”]/>
这个标签从资源文件重获取到一个消息,生成相应的一个本地化文本串,该便去重的属性描述如下:
Key : 用于查找资源文件重相应的关键字名,它对应着一条特定的消息.
bundle: 如果设置了这个属性,就会使用这个属性指定的资源文件,否则若嵌套在<fmt:bundle>标签重,就会直接使用<fmt:bundle>标签重basename属性指定的资源文件.
Var : 如果指定这个属性,则把取出的消息字符串存储在这个变量中.
Scope: 这个属性指定了var设置变量的有效范围,默认为page,然而也可以设置为session.
设置资源文件标签<fmt:setBundle>
该标签用于设置一个资源文件,并给定一个标记,以便可以通过<fmt:message>标准中指定bundle属性值来取得这个资源文件中的消息,使用格式如下:
<fmt:setBundle basename=”…thebundle’s base name…” var=”…var name…”[scope=”page|request|session|application”]/>
标签中的属性描述如下:
basename : 该属性与<fmt:message>标签中的basename属性类似.
Var : 给指定的资源文件取一个变量名,以便<fmt:message>标签可以通过这个变量名来读取资源文件中的消息
Scope: 设置var属性指定的变量的有效范围.
获取参数值标签<fmt:param>:
该标签一般与<fmt:message>标签配套使用,用来在获取的消息中插入一个值.例如:资源文件中的一条消息如下:
密码错误=”{0}的密码错误”
<fmt:message>标签首先使用key=”密码错误”这个关键字找到以上这条消息,然后在<fmt:message>标签中使用<fmt:param>标签赋一个值来替代{0}部分.
<fmt:param>标签的使用格式如下:
<fmt:message ……>
<fmt:paramvalue=”value”/>
</fmt:message>
其中value属性的值即为要的替代{0}部分的值.
<fmt:formatNum ber>标签
<fmt:formatNumber value="12" type="currency" pattern=".00元"/> <br>
<fmt:formatNumber value="12" type="currency" pattern=".0#元"/> <br>
<fmt:formatNumber value="1234567890" type="currency"/> <br>
<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/><br>
<fmt:formatNumber value="12" type="percent" /><br>
<fmt:formatNumber value="500000.01" groupingUsed="false" /><br>
<fmt:formatNumber value="98.6" minIntegerDigits="4"/><br>
<fmt:formatNumber value="98.6" minIntegerDigits="4" groupingUsed="false"/><br>
<fmt:formatNumber value="3.141592653589" maxFractionDigits="2"/><br>
<fmt:parseNumber value="12.00" type="number"/> <br>
<fmt:parseNumber value="1,234,567,890.00" type="number"/> <br>
<fmt:parseNumber value="123,456.79" type="number"/><br>
<fmt:parseNumber value="12000%" type="number"/><br>
