【问题标题】:jstl parse error: javax.servlet.jsp.JspTagException: Unrecognized object supplied as 'xml' attribute to parsejstl 解析错误:javax.servlet.jsp.JspTagException:作为“xml”属性提供的无法识别的对象进行解析
【发布时间】:2015-08-18 14:05:46
【问题描述】:

我在一个 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:作为“xml”属性提供的无法识别的对象进行解析

我的项目中有standard.jar 和jstl.jar 的本地副本。任何帮助将不胜感激,我认为这是我的语法,或者我缺少一些项目设置 jar 或其他东西。

提前致谢。

【问题讨论】:

    标签: java xml jsp jstl


    【解决方案1】:

    你的错误在于声明的变量名。

    <c:set var="active-xml" ... />
    

    与 Java 一样,连字符在 EL 中被解释为减法运算符。 ${active-xml} 基本上会给你${active} 减去${xml} 的结果。

    请改用下划线。

    <c:set var="active_xml" ... />
    

    或者,只是更喜欢 Java 代码约定并使用驼峰式大小写。

    <c:set var="activeXml" ... />
    

    或者,直接使用原始值而不通过&lt;c:set&gt;复制它。

    <x:parse xml="${activexml}" ... />
    

    【讨论】:

    • 谢谢,现在试试这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多