当我使用$ {projectList}在网页上打印时,我有一个字符串数组看起来像这样:
CREATE CLUSTERED INDEX [_dta_index_iftable_c_8_205243786__K11D_K12D_K2D] ON [dbo].[iftable]
(
[cdate] DESC,
[ctime] DESC,
[mid] DESC
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [PRIMARY]
我有一个选择的表单:
[foo,bar,foo "bar"]
如果我选择' foo" bar"' params.project只会得到foo'。有没有办法在不改变源数据的情况下解决这个问题?
更新 到目前为止,我发现的唯一解决方法是使用:
<g:select class="form-control sbt-color" name='project' value ='${params.project.encodeAsHTML()}' from='${projectList}'/>
这给了我params.project我想要的,但在选择列表本身双引号被&#34;它看起来很糟糕。
答案 0 :(得分:2)
删除.encodeAsHTML()
后,这将有效。试试这个
<g:select class="form-control sbt-color" name='project' value ='${params.project}' from='${projectList}'/>
答案 1 :(得分:0)
我找到了一个合适的解决方案,但仍然需要移动源代码。
我使用地图而不是数组:
def projectMap = [:]
for (p in projectList){
projectMap[p.replaceAll("\"",""")] = p
}
并在选择中使用它:
<g:select class="form-control sbt-color" name="project" value ="${params.project.encodeAsHTML()}" from="${projectMap.entrySet()}" optionKey="value" optionValue="key"/>
顺便说一下,我需要.encodeAsHTML()
来纠正上次选择的选项的显示