2010-01-21 73 views
0

我的任务是创建一个JSP标签,它允许开发人员将URI传递给xml文档,并返回一个可以使用EL进行导航的对象。在JSP中使用EL的groovyxmlslurper

我一直在使用Groovy和Grails颇有几分,所以我想尝试像

rval = new XmlSlurper().parseText(myXml); 

和投掷到这一点,从而在JSP中回他们可能会做一些这样的要求:

<mytag var="var"/> 
${var.rss[0].title} 

但这种方法不起作用。

有没有人有任何建议?

回答

0

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的很烂,是吧?

0

它不起作用,因为JSP是使用java编译器编译的,而不是groovy编译器。您应该使用GSP,否则当您使用GPath表达式时,您将无法使用内部调用方法的groovy机制。