×

escapexml

escapexml(escapexml属性如何使用)

admin admin 发表于2023-04-10 23:26:09 浏览76 评论0

抢沙发发表评论

本文目录一览:

标签中的escapeXml是什么意思?

标签中有一个escapeXml属性,其默认值为true,意思是是否过滤为xml文档。

1. 如果为escapeXml="false",则将其中的html、xml解析出来。如value="font size=16java/font",会显示为大小为16的”java“。

2. 如果为escapeXml="true",则显示font size=16java/font在项目中有时需要在后台将字符串拼接,然后传到前台显示。当在后台拼接的时候比如拼接了特殊字符如@、#、《》,,等的时候,传到前台时,和html的标签或者其他有冲突,导致不能正常显示。-escapexml

3. 比如刚刚在后台拼接了几个br想用于前台换行,结果用jstl的c:out输出到前台的时候成了。

4. 在c:out value="值"escapeXml="false" /中加入escapeXml="false"就能阻止这种冲突。

5. 然后在需要显示的地方写入${fn:escapeXml(后台传值)},这样也能解决。以上是jstl的解决方法。

6. 在struts中是用s:property value="escape="值"escape="false"/解决的。

在jsp页面中,处理后台数据在复选框中回显问题

首先贴出代码片段,然后根据代码逐一说明

%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%

!--引入 fn jstl支持--    

%@ taglib prefix="fn" uri="

!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

html

head

meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"

titleInsert title here/title

/head

body

ul

!-- 开发环境一般这里是用forEach循环--

li

    !-- if 语句用来判断当前复选框是否选中--

    !-- fn:contains 用来负责逻辑判断--

input type="checkbox" name="licence" id ="licence_1" value="1"  

c:if test="${fn:contains(info.licence,'1')}"checked="checked"/if /

label for="licence_1"licence_1/label

/li

li

        !-- 第二个复选项的逻辑和第一个是一样的 --

input type="checkbox" name="licence" id ="licence_2" value="2"  

c:if test="${fn:contains(info.licence,'2')}"checked="checked"/if /

label for="licence_2"licence_2/label

/li

/ul

/body

/html

假设复选框的name是licence,后台用info对象接收,那么回显的时候实际上就是判断info.licence是否包含当前复选项的值,这时候借助jstl fn组件中的函数contains来解决,contains用来判断参数1中是否包含字符串参数2,用法和java总的一样。这里要注意,为了能使用contains函数,需要在页头进行声明,参见代码片段第三行-escapexml

关于contains的详细描述如下:

fn:contains(string, substring)

假如参数string中包含参数substring,返回true

例如:c:if test="${fn:contains(name, searchString)}"

fn还有很多其他好用的函数

1、fn:containsIgnoreCase(string, substring)

假如参数string中包含参数substring(忽略大小写),返回true

2、 fn:endsWith(string, suffix)

假如参数 string 以参数suffix结尾,返回true

3、fn:escapeXml(string)

将有非凡意义的XML (和HTML)转换为对应的XML character entity code,并返回

4、fn:indexOf(string, substring)

返回参数substring在参数string中第一次出现的位置

5、fn:join(array, separator)

将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。

6、fn:length(item)

返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。假如是String类型,返回值是String中的字符数。

7、fn:replace(string, before, after)

返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果

8、fn:split(string, separator)

返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素

9、fn:startsWith(string, prefix)

假如参数string以参数prefix开头,返回true

10、fn:substring(string, begin, end)

返回参数string部分字符串,从参数begin开始到参数end位置,包括end位置的字符

11、fn:substringAfter(string, substring)

返回参数substring在参数string中后面的那一部分字符串

12、fn:substringBefore(string, substring)

返回参数substring在参数string中前面的那一部分字符串

13、fn:toLowerCase(string)

将参数string所有的字符变为小写,并将其返回

14、fn:toUpperCase(string)

将参数string所有的字符变为大写,并将其返回

15、fn:trim(string)

去除参数string 首尾的空格,并将其返回

JSTL标签中escapeXML的问题

${fn:escapeXml(param)}这样才是将字符转换

而out里面的这个的意思是是否过滤为xml文档。

如果为false,则将其中的html、xml解析出来。

如font size=16java/font,会显示为大小为16的”java“

如果为true,则显示font size=16java/font

急 急 急帮忙翻译一下!!!!谢谢不要在线翻译的!!

3.1.1什么表情的样子。

表现在jstl看起来就像这样:

$ (表达)

他们开始与$ (以)结尾;一切在这两者之间是标志

被视为表达。表现形式是一样的占位符。而相比之下,文本

像“喜有! ” ,他们并非简单的印刷他们何时出现。相反,它们是计算机

所表达的语言(见图3.1 ) ,此结果计算

印制。举例来说,考虑以下简单的表达:

c:out value="${1 + 2}"/

而不是造成c:out标记打印文字元( 1 + 2 ) ,表达

在价值属性的原因标记打印出来3 。

所有jstl标签的工作,喜欢这个。在大多数情况下,当一个表达出现在一

jstl标签的属性,即表达获得计算机,或评估。结果,这

评价是美联储向标记,它接着约其业务。

表3.1 c:out标记属性

属性描述所需的默认。

价值的表达(在jstl的表达语言)来计算是无

默认情况下的表达来计算,如果价值不无

escapexml是否转义字符;例如,要打印的性质&

作为&不是

没有真正的

46第3章

表达语言

3.1.2凡工作表现

在jstl 1.0 ,表现有特殊的意义,只有内jstl标签的属性。具体来说,

他们不工作,在模板文本。你不能简单地写

p喜$ ( username )的 /

在您的JSP网页和期望的结果是动态的。象所有的模板内容,这

文字是印在字面上;如果你将它包含在您的网页,输出您的网页会

包含文字p喜$ ( username )的 / ,用户将看到一个段落,与

文喜$ ( username )的。

jstl的表达,也没有特殊的意义,标记内的属性。

在一个HTML标记一样,

的a href="${link}"/

文$ (连结)只不过是和在这种情况下,可能误-部分的

模板文本。这不是解释为jstl的表达。

然而,当您包括表达在一个jstl标签,需就其特殊

的意义,和表达语言来发挥作用。我们将讨论的确切

意思的表达一样, $ ( username )的稍后在这一章中。现在,它的正义

重要通知如何c:out和表现形式的工作在一般

在JSP页面中如何将HTML标记显示出来

第一种:

%

out.println("tabletrtd/td/tr/table");

%

第二种:

由于content中的内容是以HTML形式存储的,所以在页面显示的时候,会将一些HTML标签原封不动的显示出来.查看页面的源代码,发现这些标签已经被解析成了转义符.

为了解决这个问题,在c:out标签中有一个escapeXml属性,其默认值为true,即默认是要将HTML标签转化为转义字符,所以在页面中就显示出了HTML标签.

所以,很显然,只要将这个属性值改为flase就可以了:

即c:out

value="

${

content

}

"

escapeXml="false"

/