本文目录一览:
- 1、标签中的escapeXml是什么意思?
- 2、在jsp页面中,处理后台数据在复选框中回显问题
- 3、JSTL标签中escapeXML的问题
- 4、急 急 急帮忙翻译一下!!!!谢谢不要在线翻译的!!
- 5、在JSP页面中如何将HTML标记显示出来
标签中的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"
/