EL与JSTL

JSP 表达式语言
JSP 表达式语言
JSP表达式语言(EL)使得访问存储在JavaBean中的数据变得非常简单。JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式。在JSP EL表达式内可以使用整型数,浮点数,字符串,常量true、false,还有null。

一个简单的语法
典型的,当您需要在JSP标签中指定一个属性值时,只需要简单地使用字符串即可:
<jsp:setProperty name=“box” property=“perimeter” value=“100”/>
JSP EL允许您指定一个表达式来表示属性值。一个简单的表达式语法如下:
e x p r 其 中 , e x p r 指 的 是 表 达 式 。 在 J S P E L 中 通 用 的 操 作 符 是 " . " 和 " [ ] " 。 这 两 个 操 作 符 允 许 您 通 过 内 嵌 的 J S P 对 象 访 问 各 种 各 样 的 J a v a B e a n 属 性 。 举 例 来 说 , 上 面 的 < j s p : s e t P r o p e r t y > 标 签 可 以 使 用 表 达 式 语 言 改 写 成 如 下 形 式 : < j s p : s e t P r o p e r t y n a m e = " b o x " p r o p e r t y = " p e r i m e t e r " v a l u e = " {expr} 其中,expr指的是表达式。在JSP EL中通用的操作符是"."和"[]"。这两个操作符允许您通过内嵌的JSP对象访问各种各样的JavaBean属性。 举例来说,上面的<jsp:setProperty>标签可以使用表达式语言改写成如下形式: <jsp:setProperty name="box" property="perimeter" value=" exprexprJSPEL".""[]"JSP访JavaBean<jsp:setProperty>使<jsp:setPropertyname="box"property="perimeter"value="{2box.width+2box.height}"/>
当JSP编译器在属性中见到"${}"格式后,它会产生代码来计算这个表达式,并且产生一个替代品来代替表达式的值。
您也可以在标签的模板文本中使用表达式语言。比如jsp:text标签简单地将其主体中的文本插入到JSP输出中:
jsp:text

Hello JSP!

</jsp:text>
现在,在 jsp:text标签主体中使用表达式,就像这样:
jsp:text
Box Perimeter is: 2 ∗ b o x . w i d t h + 2 ∗ b o x . h e i g h t < / j s p : t e x t > 在 E L 表 达 式 中 可 以 使 用 圆 括 号 来 组 织 子 表 达 式 。 比 如 {2*box.width + 2*box.height}</jsp:text> 在EL表达式中可以使用圆括号来组织子表达式。比如 2box.width+2box.height</jsp:text>EL使{(1 + 2) * 3}等于9,但是${1 + (2 * 3)} 等于7。
想要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true:
<%@ page isELIgnored =“true|false” %>
这样,EL表达式就会被忽略。若设为false,则容器将会计算EL表达式。

EL中的基础操作符
EL表达式支持大部分Java所提供的算术和逻辑操作符:
操作符 描述
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
( ) 组织一个子表达式以改变优先级

  • 减或负

  • / or div 除
    % or mod 取模
    == or eq 测试是否相等
    != or ne 测试是否不等
    < or lt 测试是否小于

or gt 测试是否大于
<= or le 测试是否小于等于
= or ge 测试是否大于等于
&& or and 测试逻辑与
|| or or 测试逻辑或
! or not 测试取反
empty 测试是否空值

JSP EL中的函数
JSP EL允许您在表达式中使用函数。这些函数必须被定义在自定义标签库中。函数的使用语法如下:
${ns:func(param1, param2, …)}
ns指的是命名空间(namespace),func指的是函数的名称,param1指的是第一个参数,param2指的是第二个参数,以此类推。比如,有函数fn:length,在JSTL库中定义,可以像下面这样来获取一个字符串的长度:
${fn:length(“Get my length”)}
要使用任何标签库中的函数,您需要将这些库安装在服务器中,然后使用标签在JSP文件中包含这些库。

JSP EL隐含对象
JSP EL支持下表列出的隐含对象:
隐含对象 描述
pageScope page 作用域
requestScope request 作用域
sessionScope session 作用域
applicationScope application 作用域
param Request 对象的参数,字符串
paramValues Request对象的参数,字符串集合
header HTTP 信息头,字符串
headerValues HTTP 信息头,字符串集合
initParam 上下文初始化参数
cookie Cookie值
pageContext 当前页面的pageContext
您可以在表达式中使用这些对象,就像使用变量一样。接下来会给出几个例子来更好的理解这个概念。

pageContext对象
pageContext对象是JSP中pageContext对象的引用。通过pageContext对象,您可以访问request对象。比如,访问request对象传入的查询字符串,就像这样:
${pageContext.request.queryString}

Scope对象
pageScope,requestScope,sessionScope,applicationScope变量用来访问存储在各个作用域层次的变量。
举例来说,如果您需要显式访问在applicationScope层的box变量,可以这样来访问:applicationScope.box。

param和paramValues对象
param和paramValues对象用来访问参数值,通过使用request.getParameter方法和request.getParameterValues方法。
举例来说,访问一个名为order的参数,可以这样使用表达式: p a r a m . o r d e r , 或 者 {param.order},或者 param.order{param[“order”]}。
接下来的例子表明了如何访问request中的username参数:
<%@ page import=“java.io.,java.util.” %><% String title = “Accessing Request Param”; %><% out.print(title); %>

<% out.print(title); %>

${param[“username”]}


param对象返回单一的字符串,而paramValues对象则返回一个字符串数组。

header和headerValues对象
header和headerValues对象用来访问信息头,通过使用 request.getHeader方法和request.getHeaders方法。
举例来说,要访问一个名为user-agent的信息头,可以这样使用表达式: h e a d e r . u s e r − a g e n t , 或 者 {header.user-agent},或者 header.useragent{header[“user-agent”]}。
接下来的例子表明了如何访问user-agent信息头:
<%@ page import=“java.io.,java.util.” %><% String title = “User Agent Example”; %><% out.print(title); %>

<% out.print(title); %>

${header[“user-agent”]}


运行结果如下:

header对象返回单一值,而headerValues则返回一个字符串数组。
JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL)
JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
根据JSTL标签所提供的功能,可以将其分为5个类别。
核心标签
格式化标签
SQL 标签
XML 标签
JSTL 函数

JSTL 库安装
Apache Tomcat安装JSTL 库步骤如下:
从Apache的标准标签库中下载的二进包(jakarta-taglibs-standard-current.zip)。下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
下载jakarta-taglibs-standard-1.1.1.zip 包并解压,将jakarta-taglibs-standard-1.1.1/lib/下的两个jar文件:standard.jar和jstl.jar文件拷贝到/WEB-INF/lib/下。

接下来我们在 web.xml 文件中添加以下配置:

……


http://java.sun.com/jstl/fmt
/WEB-INF/fmt.tld


http://java.sun.com/jstl/fmt-rt
/WEB-INF/fmt-rt.tld


http://java.sun.com/jstl/core
/WEB-INF/c.tld


http://java.sun.com/jstl/core-rt
/WEB-INF/c-rt.tld


http://java.sun.com/jstl/sql
/WEB-INF/sql.tld


http://java.sun.com/jstl/sql-rt
/WEB-INF/sql-rt.tld


http://java.sun.com/jstl/x
/WEB-INF/x.tld


http://java.sun.com/jstl/x-rt
/WEB-INF/x-rt.tld

……

使用任何库,你必须在每个JSP文件中的头部包含标签。

核心标签
核心标签是最常用的JSTL标签。引用核心标签库的语法如下:
<%@ taglib prefix=“c”
uri=“http://java.sun.com/jsp/jstl/core” %>
<c:out> 标签
<c:out> 标签
<c:out>标签用来显示一个表达式的结果,与<%= %>作用相似,它们的区别就是<c:out>标签可以直接通过".“操作符来访问属性。举例来说,如果想要访问customer.address.street,只需要这样写:<c:out value=“customer.address.street”>。
<c:out>标签会自动忽略XML标记字符,所以它们不会被当做标签来处理。
语法格式
<c:out value=”" default="" escapeXml="<true|false>"/>

属性
<c:out>标签有如下属性:
属性 描述 是否必要 默认值
value 要输出的内容 是 无
default 输出的默认值 否 主体中的内容
escapeXml 是否忽略XML特殊字符 否 true

程序示例
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

c:out 标签实例 <c:out>实例

<c:out> 实例



使用的表达式结果为null,则输出该默认值
运行结果如下: 实例

&lt要显示的数据对象(未使用转义字符)&gt
<要显示的数据对象(使用转义字符)>
使用的表达式结果为null,则输出该默认值
<c:set> 标签
<c:set> 标签
<c:set>标签用于设置变量值和对象属性。
<c:set>标签就是jsp:setProperty行为标签的孪生兄弟。
这个标签之所以很有用呢,是因为它会计算表达式的值,然后使用计算结果来设置 JavaBean 对象或 java.util.Map 对象的值。
语法格式
<c:set
var=""
value=""
target=""
property=""
scope=""/>

属性
<c:set>标签有如下属性:
属性 描述 是否必要 默认值
value 要存储的值 否 主体的内容
target 要修改的属性所属的对象 否 无
property 要修改的属性 否 无
var 存储信息的变量 否 无
scope var属性的作用域 否 Page
如果指定了target属性,那么property属性也需要被指定。

实例演示
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

c:set 标签实例 运行结果如下: 4000 标签 标签 标签用于移除一个变量,可以指定这个变量的作用域,若未指定,则默认为变量第一次出现的作用域。这个标签不是特别有用,不过可以用来确保JSP完成清理工作。 语法格式

属性
<c:remove>标签有如下属性:
属性 描述 是否必要 默认值
var 要移除的变量名称 是 无
scope 变量所属的作用域 否 所有作用域
实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:remove 标签实例<c:set var=“salary” scope=“session” value=" 2000 ∗ 2 " / > < p > s a l a r y 变 量 值 : < c : o u t v a l u e = " {2000*2}"/><p>salary 变量值: <c:out value=" 20002"/><p>salary:<c:outvalue="{salary}"/>

<c:remove var=“salary”/>

删除 salary 变量后的值: <c:out value="${salary}"/>


运行结果如下:
salary 变量值: 4000
删除 salary 变量后的值:
<c:forEach>, <c:forTokens> 标签
<c:forEach>, <c:forTokens> 标签
这些标签封装了Java中的for,while,do-while循环。相比而言,<c:forEach>标签是更加通用的标签,因为它迭代一个集合中的对象。<c:forTokens>标签将字符串分隔为一个子串数组然后迭代它们。
forEach 语法格式
<c:forEach
items=""
begin=""
end=""
step=""
var=""
varStatus="">
...

forTokens 语法格式
<c:forTokens
items=""
delims=""
begin=""
end=""
step=""
var=""
varStatus="">

属性
<c:forEach>标签有如下属性:
属性 描述 是否必要 默认值
items 要被循环的信息 否 无
begin 开始的元素(0=第一个元素,1=第二个元素) 否 0
end 最后一个元素(0=第一个元素,1=第二个元素) 否 Last element
step 每一次迭代的步长 否 1
var 代表当前条目的变量名称 否 无
varStatus 代表循环状态的变量名称 否 无
<c:forTokens>标签与<c:forEach>标签有相似的属性,不过<c:forTokens>还有另一个属性:
属性 描述 是否必要 默认值
delims 分隔符 是 无

<c:forEach>实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:forEach 标签实例<c:forEach var=“i” begin=“1” end=“5”>
Item <c:out value="${i}"/>

</c:forEach>


运行结果如下:
Item 1Item 2Item 3Item 4Item 5

<c:forTokens>演示实例
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:forTokens 标签实例<c:forTokens items=“google,w3cschool,taobao” delims="," var=“name”>
<c:out value="${name}"/>

</c:forTokens>


运行结果如下:
google
w3cschool
taobao
<c:choose>, <c:when>, <c:otherwise> 标签
<c:choose>, <c:when>, <c:otherwise> 标签
<c:choose>标签与Java switch语句的功能一样,用于在众多选项中做出选择。switch语句中有case,而<c:choose>标签中对应有<c:when>,switch语句中有default,而<c:choose>标签中有<c:otherwise>。
语法格式
<c:choose>
<c:when test=""/>

</c:when>
<c:when test=""/>

</c:when>


<c:otherwise>

</c:otherwise></c:choose>

属性
<c:choose>标签没有属性。
<c:when>标签只有一个属性,在下表中有给出。
<c:otherwise>标签没有属性。
<c:when>标签的属性如下:
属性 描述 是否必要 默认值
test 条件 是 无

实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:choose 标签实例<c:set var=“salary” scope=“session” value=" 2000 ∗ 2 " / > < p > 你 的 工 资 为 : < c : o u t v a l u e = " {2000*2}"/><p>你的工资为 : <c:out value=" 20002"/><p>:<c:outvalue="{salary}"/>

<c:choose>
<c:when test=" s a l a r y < = 0 " > 太 惨 了 。 < / c : w h e n > < c : w h e n t e s t = " {salary <= 0}"> 太惨了。 </c:when> <c:when test=" salary<=0"></c:when><c:whentest="{salary > 1000}">
不错的薪水,还能生活。
</c:when>
<c:otherwise>
什么都没有。
</c:otherwise></c:choose>
运行结果如下:
你的工资为 : 4000
不错的薪水,还能生活。
<c:if> 标签
<c:if> 标签
<c:if>标签判断表达式的值,如果表达式的值为真则执行其主体内容。
语法格式
<c:if test="" var="" scope="">

</c:if>
属性
<c:if>标签有如下属性:
属性 描述 是否必要 默认值
test 条件 是 无
var 用于存储条件结果的变量 否 无
scope var属性的作用域 否 page
演示实例<c:param> 标签
<c:param> 标签
<c:param>标签用于在<c:url>标签中指定参数,而且与URL编码相关。
在<c:param>标签内,name属性表明参数的名称,value属性表明参数的值。
语法格式
<c:param name="" value=""/>

属性
<c:param>标签有如下属性:
属性 描述 是否必要 默认值
name URL中要设置的参数的名称 是 无
value 参数的值 否 Body

程序示例
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:forTokens 标签实例

<c:param> 实例


<c:url var=“myURL” value=“main.jsp”>
<c:param name=“name” value=“w3cschool”/>
<c:param name=“url” value=“www.w3cschool.cn”/>
</c:url>
<a href="/<c:out value="${myURL}"/>">
使用 <c:param> 为指定URL发送两个参数。
通过浏览器访问以上页面,然后查看源代码,显示如下所示:
<c:redirect> 标签
<c:redirect> 标签
<c:redirect>标签通过自动重写URL来将浏览器重定向至一个新的URL,它提供内容相关的URL,并且支持c:param标签。
语法格式
<c:redirect url="" context=""/>

属性
c:redirect标签有如下属性:
属性 描述 是否必要 默认值
url 目标URL 是 无
context 紧接着一个本地网络应用程序的名称 否 当前应用程序

实例演示
如果你需要向 <c:import> 标签传递参数, 请先用 <c:url> 标签来创建URL地址,如下所示:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
    pageEncoding=“UTF-8”%> <%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

c:redirect 标签实例 标签 标签将URL格式化为一个字符串,然后存储在一个变量中。 这个标签在需要的时候会自动重写URL。 var属性用于存储格式化后的URL。 标签只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括中指定的参数。 语法格式

属性
<c:url>标签有如下属性:
属性 描述 是否必要 默认值
value 基础URL 是 无
context 本地网络应用程序的名称 否 当前应用程序
var 代表URL的变量名 否 Print to page
scope var属性的作用域 否 Page

实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:url 标签实例

<c:url&gt实例 Demo


<a href="<c:url value=“http://www.w3cschool.cn”/>">
这个链接通过 <c:url> 标签生成。

运行结果如下:

格式化标签
JSTL格式化标签用来格式化并输出文本、日期、时间、数字。引用格式化标签库的语法如下:
<%@ taglib prefix=“fmt”
uri=“http://java.sun.com/jsp/jstl/fmt” %>

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>c:if 标签实例<c:set var=“salary” scope=“session” value=" 2000 ∗ 2 " / > < c : i f t e s t = " {2000*2}"/><c:if test=" 20002"/><c:iftest="{salary > 2000}">

我的工资为:

运行结果如下: 我的工资为: 4000 标签 标签 标签用于格式化数字,百分比,货币。 语法格式 属性 标签有如下属性: 属性 描述 是否必要 默认值 value 要显示的数字 是 无 type NUMBER,CURRENCY,或 PERCENT类型 否 Number pattern 指定一个自定义的格式化模式用与输出 否 无 currencyCode 货币码(当type="currency"时) 否 取决于默认区域 currencySymbol 货币符号 (当 type="currency"时) 否 取决于默认区域 groupingUsed 是否对数字分组 (TRUE 或 FALSE) 否 true maxIntegerDigits 整型数最大的位数 否 无 minIntegerDigits 整型数最小的位数 否 无 maxFractionDigits 小数点后最大的位数 否 无 minFractionDigits 小数点后最小的位数 否 无 var 存储格式化数字的变量 否 Print to page scope var属性的作用域 否 page 如果type属性为percent或number,那么您就可以使用其它几个格式化数字属性。maxIntegerDigits属性和minIntegerDigits属性允许您指定整数的长度。若实际数字超过了maxIntegerDigits所指定的最大值,则数字将会被截断。 有一些属性允许您指定小数点后的位数。minFractionalDigits属性和maxFractionalDigits属性允许您指定小数点后的位数。若实际的数字超出了所指定的范围,则这个数字会被截断。 数字分组可以用来在每三个数字中插入一个逗号。groupingIsUsed属性用来指定是否使用数字分组。当与minIntegerDigits属性一同使用时,就必须要很小心地来获取预期的结果了。 您或许会使用pattern属性。这个属性可以让您在对数字编码时包含指定的字符。接下来的表格中列出了这些字符。 符号 描述 0 代表一位数字 E 使用指数格式 # 代表一位数字,若没有则显示0 . 小数点 , 数字分组分隔符 ; 分隔格式 - 使用默认负数前缀 % 百分数 ? 千分数 ¤ 货币符号,使用实际的货币符号代替 X 指定可以作为前缀或后缀的字符 ' 在前缀或后缀中引用特殊字符

实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %><%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>

JSTL fmt:formatNumber 标签

数字格式化:

格式化数字 (1):

格式化数字 (2):

格式化数字 (3):

格式化数字 (4):

格式化数字 (5):

格式化数字 (6):

格式化数字 (7):

格式化数字 (8):

美元 :

运行结果如下: 数字格式化: 格式化数字 (1): ¥120,000.23 格式化数字 (2): 000.231 格式化数字 (3): 120,000.231 格式化数字 (4): 120000.231 格式化数字 (5): 023% 格式化数字 (6): 12,000,023.0900000000% 格式化数字 (7): 023% 格式化数字 (8): 120E3 美元 : $120,000.23

fmt:formatDate 标签
fmt:formatDate 标签
fmt:formatDate标签用于使用不同的方式格式化日期。
语法格式
<fmt:formatDate
value=""
type=""
dateStyle=""
timeStyle=""
pattern=""
timeZone=""
var=""
scope=""/>

属性
fmt:formatDate标签有如下属性:
属性 描述 是否必要 默认值
value 要显示的日期 是 无
type DATE, TIME, 或 BOTH 否 date
dateStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 否 default
timeStyle FULL, LONG, MEDIUM, SHORT, 或 DEFAULT 否 default
pattern 自定义格式模式 否 无
timeZone 显示日期的时区 否 默认时区
var 存储格式化日期的变量名 否 显示在页面
scope 存储格式化日志变量的范围 否 页面
fmt:formatDate 标签格式模式
代码 描述 实例
G 时代标志 AD
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 2002
M 月份数字。一位数的月份没有前导零。 April & 04
d 月中的某一天。一位数的日期没有前导零。 20
h 12 小时制的小时。一位数的小时数没有前导零。 12
H 24 小时制的小时。一位数的小时数没有前导零。 0
m 分钟。一位数的分钟数没有前导零。 45
s 秒。一位数的秒数没有前导零。 52
S 毫秒 970
E 周几 Tuesday
D 一年中的第几天 180
F 一个月中的第几个周几 2 (一个月中的第二个星期三)
w 一年中的第几周r 27
W 一个月中的第几周 2
a a.m./p.m. 指示符 PM
k 小时(12 小时制的小时) 24
K 小时(24 小时制的小时) 0
z 时区 中部标准时间
’   转义文本
‘’   单引号

实例演示
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%><%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %><%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %>

JSTL fmt:dateNumber 标签

日期格式化:

日期格式化 (1):

日期格式化 (2):

日期格式化 (3):

日期格式化 (4):

日期格式化 (5):

日期格式化 (6):

日期格式化 (7):

以上实例运行结果: 日期格式化: 日期格式化 (1): 11:19:43 日期格式化 (2): 2016-6-26 日期格式化 (3): 2016-6-26 11:19:43 日期格式化 (4): 16-6-26 上午11:19 日期格式化 (5): 2016-6-26 11:19:43 日期格式化 (6): 2016年6月26日 上午11时19分43秒 日期格式化 (7): 2016-06-26 SQL标签 JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签。引用SQL标签库的语法如下: <%@ taglib prefix="sql"   uri="http://java.sun.com/jsp/jstl/sql" %> XML 标签 JSTL XML标签库提供了创建和操作XML文档的标签。引用XML标签库的语法如下: <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> 在使用xml标签前,你必须将XML 和 XPath 的相关包拷贝至你的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值