Grails处理select中的对象

时间:2014-02-06 10:40:01

标签: grails gorm

我有这样的域类:

class City {
String name;
Country country;

}

在创建视图中,我想将国家/地区设为选择框,如下所示:

  <g:select  id="country" optionKey="id" optionValue="countryName"
          from="${Country.list()}" name="country"  >
  </g:select>

处理提交的最佳方式是什么,以便将国家/地区作为对象发送 (目前我收到一条消息:

    Failed to convert property value of type java.lang.String to required type com.example.Country for property country; 

nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [com.example.Country] for property country: 

no matching editors or conversion strategy found

注意:我找到了这个匹配的问题:Grails select not returning the object but a string但解决方案并没有解决我的问题。

谢谢。

1 个答案:

答案 0 :(得分:0)

这是因为Grails控制器无法理解如何处理country请求参数的数值。因此,在您的控制器中,您应该写:

def country = Country.get(params.getLong('country'))
def city = new City(name: params.name, country: country)