использование groovyxmlslurper из EL в JSP - PullRequest
0 голосов
/ 21 января 2010

Мне было поручено создать тег JSP, который позволит разработчикам передавать URI в XML-документ и возвращать объект, по которому можно перемещаться с помощью EL.

Я довольно часто использовал groovy и grails, так что я подумал о том, чтобы попробовать что-то вроде

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

и добавив это в запрос, чтобы в JSP они могли сделать что-то вроде:

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

но такой подход не работает.

У кого-нибудь есть предложения?

Ответы [ 2 ]

0 голосов
/ 22 января 2010

Гизмо прав в том, что проблема в том, что 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")

Ява отстой, да?

0 голосов
/ 21 января 2010

Это не работает, потому что JSP компилируется с использованием компилятора java, а не компилятора groovy.Вместо этого вы должны использовать GSP, иначе вы не сможете использовать механизм groovy, который внутренне вызывает методы при использовании выражения GPath.

...