我有这个JSP代码片段:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:choose>
<c:when test="${var1.properties[\"Item Type\"] eq \"Animal's Part\"}">
<c:set var="cssClassName" value="animalpart" />
</c:when>
<c:otherwise>
<c:set var="cssClassName" value="" />
</c:otherwise>
</c:choose>
服务器无法编译JSP。但是,如果我从“动物的部分”中删除字符“'”,则可以编辑。我试图通过使用“\”字符来逃避它,但它仍然给我错误。
任何建议/帮助表示赞赏。我试图尽可能避免使用scriptlet。
感谢。
编辑:我设法让它工作(发布到StackOverflow之后),作为此问题的解决方案之一发布。我尝试过之前发布的其他解决方案(由Vincent和Eddie发布),然而,不幸的是,没有一个在我的环境中有效,尽管我认为它们可能在答案环境中有效。感谢。
答案 0 :(得分:6)
试试这个
<c:when test='${var1.properties["Item Type"] eq "Animal\'s Part"}'>
答案 1 :(得分:3)
您有两个简单的选择:
<c:when test="${var1.properties['Item Type'] eq 'Animal\'s Part'}">
<c:when test='${var1.properties["Item Type"] eq "Animal\'s Part"}'>
答案 2 :(得分:3)
这是我的用例中的解决方案:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="itemType" value="${var1.properties[\"Item Type\"]}" />
<c:set var="item_animalpart" value="Animal's Part" />
<c:set var="item_treepart" value="Tree's Part" />
<c:choose>
<c:when test="${itemType eq name_item_animalpart}">
<c:set var="cssClassName" value="animalpart" />
</c:when>
<c:when test="${itemType eq name_item_treepart}">
<c:set var="cssClassName" value="treepart" />
</c:when>
<c:otherwise>
<c:set var="cssClassName" value="" />
</c:otherwise>
</c:choose>
答案 3 :(得分:0)
使用escapeXml =“false” 例如:
<c:out value="${formulario}" escapeXml="false" />