学科分类
目录
Java Web

fn:escapeXml函数

在开发一个JSP页面时,为了防止用户在页面中输入特殊的字符而产生不良的影响,通常需要对特殊字符进行转义,为了解决这个问题,Functions标签库提供了一个fn:escapeXml函数,该函数专门用于将字符串中的“<”、“>”、“"”、“&”等特殊字符进行转义,其语法格式如下:

fn:escapeXml(String source) 

在上述语法格式中,可以看到fn:escapeXml函数需要接收一个String类型的参数,并返回转义后的字符串。实际上fn:escapeXml函数与<c:out>标签中escapeXml属性为true时的转换效果是相同的。为了使读者更好的学习fn:escapeXml函数,接下来通过一个具体的案例来演示fn:escapeXml函数的应用,如例1所示。

例1 fn_escapeXml.jsp

1  <%@ page language="java" contentType="text/html; charset=utf-8"

 2    pageEncoding="utf-8"%>

 3  <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

 4  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 5  <html>

 6  <head></head>

 7  <body>

 8    1:${fn:escapeXml("<b>表示粗体字</b>")} <br> 

 9    2:<c:out value="<b>表示粗体字</b>" escapeXml="true"/> <br>

 10   3:${"<b>表示粗体字</b>"}

 11 </body>

 12 </html>

打开IE浏览器,在地址栏中输入http://localhost:8080/chapter08/fn_escapeXml.jsp访问fn_escapeXml.jsp页面,此时,浏览器窗口中显示的结果如图1所示。

图1 fn_escapeXml.jsp

从图1可以看出,在浏览器中分别输出了转义后的字符串和未转义的字符串,这个因为在例1中,使用fn:escapeXml函数和<c:out>标签对“<b>表示粗体字</b>”字符串进行了转义,而直接使用表达式${"<b>表示粗体字</b>"}不能对特殊字符进行转义,在浏览器中便会直接输出粗体形式的“表示粗体字”字符串。

点击此处
隐藏目录