Grails GSP视图不会输出变量

时间:2012-02-16 10:34:00

标签: grails gsp

我有这样的看法

<?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作为变量,但没有任何帮助,总是有一些不良的副作用。我怎样才能做到这一点?我只是想在没有额外验证/处理的情况下替换变量......

1 个答案:

答案 0 :(得分:1)

<?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>