Grails表单提交用String填充Integer字段

时间:2016-03-21 20:09:32

标签: forms grails groovy

我有一个以整数作为键的映射,但是当我的表单被提交时,该键变成了一个字符串。

1)我甚至不明白这是怎么回事。我的地图明确指出只有整数可以是键,但它是用字符串填充的吗?可能只是一些Groovy的东西......

2)假设#1只是奇怪的一些时髦的东西,我怎么能强制我的questions地图keySet填充整数,就像我想要它而不是字符串?

class ApplicationCommand implements Validateable {
    Map<Integer,String[]> questions = new LinkedHashMap<Integer,String[]>();
}

<g:textField name="cmd.questions[14]" value="${cmd.questions[14][0]}" />

def save(ApplicationCommand cmd) {
    System.out.println(cmd.questions.containsKey(14));  //FALSE
    System.out.println(cmd.questions.containsKey("14"));  //TRUE

    ....
}

编辑:Grails 3.1

1 个答案:

答案 0 :(得分:0)

我相信您需要使用GrailsParameterMap并明确调用方法,如:

map.getInt(key)

我不确定一个更好的方法,随便。在提交应该被解释为列表的同名的多个值时,此类也非常有用。