我在选择框中有以下内容
<div class="form-group">
<label for="machinename">Portails</label>
<select name='portalsChoice' multiple class="form-control">
<g:each in="${portals}" var="portal">
<option>${portal.name}</option>
</g:each>
</select>
</div>
然后,在控制器中,我得到所有这样的参数:
def mymethod() {
List<String> portalsChoice = params.portalsChoice
...
}
如果我选择2个元素,它效果很好。 我只选择1个元素,我有以下错误:无法转换对象&#39;我的字符串&#39;与class&#39; java.lang.String&#39; to class&#39; java.util.List&#39;
避免此错误的最佳方法是什么?
提前致谢,
答案 0 :(得分:1)
替换此
def mymethod() {
List<String> portalsChoice = params.portalsChoice
}
带
def mymethod() {
List<String> portalsChoice = params.list('portalsChoice')
}
portalsChoice
列表将包含所选元素,无论选择了多少元素。
答案 1 :(得分:0)
您可以在控制器中提供支票:
List<String> portalsChoice = []
if(params.portalsChoice instanceof String){
//force it to be a list
portalsChoice = params.list('portalsChoice')
}else{
//for multiple
portalsChoice = params.portalsChoice
}
不是那么棘手但有助于解决您的问题。