<c:import>标签
<c:import>标签提供<jsp:include>动作标签的所有的功能动作,但也可以包含绝对URL。例如,允许使用导入
标签包含的内容从一个不同的Web站点或FTP服务器。
同<jsp:include>标签的区别:只能包含同一个Web应用中的文件,而<c:import>标签可以包含其他Web应用中
的文件,甚至是网络上的资源。
<c:import>标签具有以下属性:
<c:import>标签的用法:
可以把其他静态或动态文件包含到本JSP页面。
url属性指的是被导入资源的URL路径;
context属性指的是相同服务器下其他Web工程,必须以"/"开头;
var属性指的是以String类型存入被包含文件的内容;
scope属性指的是var变量的JSP范围;
charEncoding属性指的是被导入文件的编码格式 ;
varReade属性指的是以Reader类型存储被包含文件内容;
context属性引入的内容是webapps下的其他的Web project。
实例代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 导入JSTL标签库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>JSTL使用</title>
</head>
<body>
<h1>JSTL标签的使用</h1>
<hr>
<!-- import标签的用法 -->
<!-- 导入网络上的绝对路径 -->
<c:catch var="error09">
<c:import url="https://www.baidu.com" charEncoding="UTF-8" />
</c:catch>
<c:out value="${error09}" /><br/>
<!-- 导入相对路径文件 -->
<c:catch var="error08">
<c:import url="test.txt" charEncoding="UTF-8" />
</c:catch>
<c:out value="${error08}" /><br/>
<!-- var和scope属性的用法 -->
<c:catch var="error07">
<c:import url="test.txt" var="test" scope="session" charEncoding="UTF-8" />
</c:catch>
<c:out value="${error07}" />
<c:out value="import标签存储的test字符串变量值为:${sessionScope.test}" /><br/>
<!-- content属性的用法 -->
<c:catch var="error06">
<c:import url="/date.jsp" context="/FirstWebApp" charEncoding="UTF-8" />
</c:catch>
<c:out value="${error06}" />
</body>
</html>
结果:
<c:redirect>标签和<c:param>标签
<c:redirect>标签将浏览器重定向到一个备用URL提供自动URL重写,它支持上下文相关的URL和支持
<c:param>标签。
<c:redirect>标签具有以下属性:
<c:param>标签允许适当的URL请求参数到指定的URL和任何必要的URL编码。在一个<c:param>标签的name
属性表示参数的名称,value属性表示的参数值。
<c:param>标签具有以下属性:
<c:redirect>标签的用法:
该标签用来实现请求的重定向,同事可以在url中加入指定的参数;
url属性用于指定重定向页面的地址,可以是一个String类型的绝对路径或相对地址;
context属性用于导入其他Web应用中的页面。
实例:
test.jsp页面代码:
结果:
<c:url>标签
<c:url>标签格式化成一个字符串格式的URL,并将其存储到变量中。这个标签会在必要时自动执行URL重写。
var属性指定的变量将包含格式化的URL。JSTL url标签只是response.encodeURL()方法的调用一个替代方法。URL
标记提供的唯一的真正的优势是正确的URL编码,包括子<c:param>标签指定的任何参数。
<c:url>标记具有以下属性:
<c:url>标签的用法:
该标签用于动态生成一个String类型的URL,可以同<c:param>标签共同使用,也可以使用HTML中的<a>标签
实现超链接。
var属性是将url路径存储在的变量中;
value属性表示url路径值;
scope属性是var变量的范围。
实例:
结果:
JSTL函数
需要在页面添加:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
先来介绍几个简单常用的JSTL函数:
1)使用fn:contains()函数判断输入的字符串是否包含指定的子串。
使用fn:contains()函数的语法如下:
boolean contains(java.lang.String, java.lang.String)
2)fn:containsIgnoreCase()函数判断输入的字符串是否包含指定的子串,搜索时忽略大小写。
使用fn:containsIgnoreCase()函数的语法如下:
boolean containsIgnoreCase(java.lang.String, java.lang.String)
3)fn:endsWith()函数判断输入的字符串是否与指定的后缀结束。
使用fn:endsWith()函数的语法如下所示:
boolean endsWith(java.lang.String, java.lang.String)
4)fn:startsWith() 函数判断输入的字符串是否为指定的子串开始。
使用fn:startsWith() 函数有以下语法:
boolean startsWith(java.lang.String, java.lang.String)
5)fn:indexOf()函数返回在字符串中指定的子串的索引。
使用fn:indexOf() 函数的语法如下:
int indexOf(java.lang.String, java.lang.String)
6)fn:escapeXml()函数转义字符,可以解释为XML标记。
使用fn:escapeXml() 函数的语法如下:
java.lang.String escapeXml(java.lang.String))
实例代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 导入JSTL标签库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!-- 导入JSTL函数库 -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!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>JSTL使用</title>
</head>
<body>
<h1>JSTL函数的使用</h1>
<hr>
<!-- contains函数使用 -->
<c:out value=" Hello Word字符串是否包含Hello:${fn:contains('Hello World','Hello')}" /><br>
<c:out value=" Hello Word字符串是否包含test:${fn:contains('Hello World','test')}" /><br>
<!-- containsIgnoreCase函数使用 -->
<c:out value=" Hello Word字符串是否包含hello(忽略大小写):${fn:containsIgnoreCase('Hello World','hello')}" /><br>
<c:out value=" Hello Word字符串是否包含WORLD(忽略大小写):${fn:containsIgnoreCase('Hello World','WORLD')}" /><br>
<!-- endsWith和startsWith函数使用 -->
<c:out value=" Hello Word字符串是否以World结尾:${fn:endsWith('Hello World','World')}" /><br>
<c:out value=" Hello Word字符串是否以Hello开头:${fn:startsWith('Hello World','Hello')}" /><br>
<!-- escapeXml函数使用 -->
<c:out value="${fn:escapeXml('<book>谁的青春不迷茫</book>')}" /><br>
<c:out value="<book>谁的青春不迷茫</book>" /><br>
<!-- indexOf函数使用 -->
<c:out value=" Hello Word字符串中Hello出现的index值:${fn:indexOf('Hello World','Hello')}" /><br>
</body>
</html>
结果:
其他的JSTL函数:
对于其他的JSTL函数具体用法可以参考:http://www.yiibai.com/jstl
关于JSTL的学习就告一段落,对于其他的XML标签、SQL标签和格式化标签我们使用到的时候再进行介绍,学习
的过程是无止境的。