关于 JSTL c:out 对 XML html 自动转义 转义的禁用

在servlet里设置了属性值 request.setAttribute("MENU", menu);

doPost()或者doGet()里做跳转:

代码

getServletConfig().getServletContext().getRequestDispatcher(
mainpage).forward(request, response);

在mainpage页面直接获取可以用 request.getAttribute("MENU");

若用JSTL代码为 <c:out value="${MENU}"></c:out>

MENU里面包含的 html 的特殊字符被自动转义 显示到页面

不想转义,解决方法如下:

-----------------------------------------

<c:out value="expression" default="expression" escapeXml="boolean"/>;


escapeXml 属性也是可选的。

它控制当用 <c:out>; 标记输出诸如“<”、“>;”和“&”之类的字符

(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。

如果将 escapeXml 设置为 true,则会自动将这些字符转换成相应的 XML 实体(此处提到的字符分别转换成 &、& 和 &)。

--------------------------------------------

对于转义的禁用 :

设置 escapeXml属性为"false" 即可 代码如下:

<c:out value="${MENU}" escapeXml="false"></c:out>

================================================

在应用程序开发中,如果内容过长,想截取一定长度字符,然后补充"....."
jstl1.1引入了一个fn.tld的标签,用于处理字符,如获得字符length,substring,indexof,endWith,lowcase
实现截取字符串
如:
<c:set var="log.logTitle" value="做一个截取字符串长度的测试"
<c:choose>
<c:when test="${fn:length(log.logTitle) > 10}">
<c:out value="${fn:substring(log.logTitle, 0, 10)}......" />
</c:when>
<c:otherwise>
<c:out value="${log.logTitle}" />
</c:otherwise>
</c:choose>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiyuan1999/archive/2009/08/06/4419321.aspx

你可能感兴趣的:(html,C++,c,xml,C#)