我的任务是创建一个 JSP 标记,它允许开发人员将 URI 传递给 xml 文档,并返回一个可以使用 EL 导航的对象。
我一直在使用 groovy 和 grails,所以我想尝试类似的东西
rval = new XmlSlurper().parseText(myXml);
并将其放入请求中,以便回到 JSP 中,他们可能会执行以下操作:
<mytag var="var"/>
${var.rss[0].title}
但这种方法行不通。
有没有人有什么建议?
它不起作用,因为 JSP 是使用 java 编译器而不是 groovy 编译器编译的。您应该改用 GSP,否则当您使用 GPath 表达式时,您将无法使用内部调用方法的 groovy 机制。
Gizmo 是正确的,问题在于 JSP 假设一切都是 Java,但我怀疑切换到 GSP 是一个实际的答案。要解决这个问题,您需要知道如何将 Groovy 代码转换为 Java。Groovy 代码:
var.rss[0].title
大致相当于这个Java:
var.getProperty("rss").getAt(0).getProperty("title")
可能还需要将每个结果转换为 GPathResult,例如,
((GPathResult)((GPathResult)var.getProperty("rss")).getAt(0)).getProperty("title")
Java很烂,对吧?