【问题标题】:Grails GSP view won't output variableGrails GSP 视图不会输出变量
【发布时间】:2012-02-16 10:33:59
【问题描述】:

我有这样的看法

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

【问题讨论】:

  • 请说明您如何在控制器中调用render。会不会是错字(例如serviceName)?
  • [result: rs, servicename: service.name, parameters: service.getOutputParameters()] 不能是错字——如果我把它放在标签外面就可以了
  • 如果是拼写错误,那么 ${servicename} (在这个地方的语法是否正确)只会呈现为

标签: grails gsp


【解决方案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>

【讨论】:

  • 感谢我之前尝试过类似的方法,现在我什至尝试了这个确切的解决方案,但问题是现在它省略了 xml 定义的第一行(不知道为什么)以及删除空行(不过,这个实际上会稍微有益)
  • 即使我使用 """ %>,也无济于事
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
相关资源
最近更新 更多