jstl parse error: javax.servlet.jsp.JspTagException: Unrecognized object supplied as 'xml' attribute to parse
jstl parse error: javax.servlet.jsp.JspTagException: Unrecognized object supplied as 'xml' attribute to parse
我在 jsp(portlet 版本 1)项目中有一个 xml 的有效字符串。
我正在尝试使用 jstl 标签来解析它。
包含的标签库:
<%@ page import="javax.portlet.*"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
目前我设置的字符串:
String activexml = (String)renderRequest.getPortletSession().getAttribute("activexml");
然后我为 jsp 页面设置我的属性:
pageContext.setAttribute("activexml", activexml);
一切正常,错误来了。当我去设置要解析的xml。 C 标签很好,没有返回错误,但 x 收到错误:
<c:set var="active-xml" scope="session" value="${activexml}"/>
<x:parse xml="${active-xml}" var="active"/>
javax.servlet.jsp.JspTagException: Unrecognized object supplied as 'xml' attribute to parse
我的项目中有 standard.jar 和 jstl.jar 的本地副本。任何帮助将不胜感激,我认为这是我的语法问题,或者我缺少一些项目设置 jar 或其他东西。
提前致谢。
你的错误在于声明的变量名。
<c:set var="active-xml" ... />
与 Java 一样,连字符在 EL 中被解释为减法运算符。 ${active-xml}
基本上会给你 ${active}
减去 ${xml}
的结果。
改用下划线。
<c:set var="active_xml" ... />
或者,更喜欢 Java 代码约定并使用驼峰式大小写。
<c:set var="activeXml" ... />
或者,直接使用原始值而不通过 <c:set>
复制它。
<x:parse xml="${activexml}" ... />
我在 jsp(portlet 版本 1)项目中有一个 xml 的有效字符串。
我正在尝试使用 jstl 标签来解析它。 包含的标签库:
<%@ page import="javax.portlet.*"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
目前我设置的字符串:
String activexml = (String)renderRequest.getPortletSession().getAttribute("activexml");
然后我为 jsp 页面设置我的属性:
pageContext.setAttribute("activexml", activexml);
一切正常,错误来了。当我去设置要解析的xml。 C 标签很好,没有返回错误,但 x 收到错误:
<c:set var="active-xml" scope="session" value="${activexml}"/>
<x:parse xml="${active-xml}" var="active"/>
javax.servlet.jsp.JspTagException: Unrecognized object supplied as 'xml' attribute to parse
我的项目中有 standard.jar 和 jstl.jar 的本地副本。任何帮助将不胜感激,我认为这是我的语法问题,或者我缺少一些项目设置 jar 或其他东西。
提前致谢。
你的错误在于声明的变量名。
<c:set var="active-xml" ... />
与 Java 一样,连字符在 EL 中被解释为减法运算符。 ${active-xml}
基本上会给你 ${active}
减去 ${xml}
的结果。
改用下划线。
<c:set var="active_xml" ... />
或者,更喜欢 Java 代码约定并使用驼峰式大小写。
<c:set var="activeXml" ... />
或者,直接使用原始值而不通过 <c:set>
复制它。
<x:parse xml="${activexml}" ... />