0
我有一个Grails元素的Grails G:选择optionValue
<g:select name="name" from="${list}" optionKey='code' optionValue='name' ></g:select>
其中optionValue包含一些HTML元素像这样,
我想只显示国名,已经我尝试使用encodeAsHTML(),但不知道如何使用。请建议。
感谢
我有一个Grails元素的Grails G:选择optionValue
<g:select name="name" from="${list}" optionKey='code' optionValue='name' ></g:select>
其中optionValue包含一些HTML元素像这样,
我想只显示国名,已经我尝试使用encodeAsHTML(),但不知道如何使用。请建议。
感谢
你不能与出的现成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>
这是因为XSS而发生的。而不是encodeAsHTML
使用raw
。试试这个:
<g:select name="name" from="${list.collect { raw(it) }}" optionKey='code' optionValue='name'/>
这是不正确的,使用'raw'可以让你通过html unncoded。根据@ user1690588 – Dave
的回答,你的意思是它不起作用? – injecteer
你的第一句话是不正确的。你声明它不能使用g.select标签完成。它可以。 – Dave