我有这样的看法
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:${servicename}Response xmlns:ns2="http://ws/">
<g:each in="${result}" var="record">
<return>
<g:each in="${parameters}" var="parameter">
<${parameter.name}>${record[parameter.name]}</${parameter.name}>
</g:each>
</return>
</g:each>
</ns2:${servicename}Response>
</S:Body>
</S:Envelope>
它呈现如下:
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:${servicename}Response xmlns:ns2="http://ws/">
<return>
<column1>updated</column1>
<column2>update</column2>
<id>1</id>
</return>
</ns2:${servicename}Response>
</S:Body>
</S:Envelope>
如您所见,servicename变量不会在元素名称内用命名空间替换。我试图通过几种方式来破解它,例如将整个ns:servicename作为变量传递,但是没有任何帮助,总会有一些不良的副作用。我怎样才能做到这一点?我只想替换变量而无需其他验证/处理...
最佳答案
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<%= """<ns2:${servicename}Response xmlns:ns2="http://ws/">""" %>
<g:each in="${result}" var="record">
<return>
<g:each in="${parameters}" var="parameter">
<${parameter.name}>${record[parameter.name]}</${parameter.name}>
</g:each>
</return>
</g:each>
<%= """</ns2:${servicename}Response>""" %>
</S:Body>
</S:Envelope>
关于grails - Grails GSP View 将不会输出变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9309709/