我有一个grails元素
<g:select name="name" from="${list}" optionKey='code' optionValue='name' ></g:select>
其中optionValue包含一些像这样的HTML元素,
我想只显示国家名称,我已尝试使用encodeAsHTML(),但不知道如何使用。请建议。
谢谢
答案 0 :(得分:1)
您无法使用开箱即用g.select
标记执行此操作。您需要手动遍历列表:
<select name="someName">
<option value="">- no select -</option>
<g:each in="${list}" var="c">
<option value="${c.code}">${c.name.replaceFirst( /<span class='countryName'>([\w\s]+)</span>/, '$1' )}</option>
</g:each>
</select>
答案 1 :(得分:1)
这是因为XSS而发生的。而不是encodeAsHTML
使用raw
。试试这个:
<g:select name="name" from="${list.collect { raw(it) }}" optionKey='code' optionValue='name'/>