grails:在gsp中显示对象的字段

时间:2013-08-29 09:25:00

标签: sql grails gsp

在我的grails项目中,我创建了一个名为Patient的对象的实例,该对象有一个字段城市。

class Patient {

 String name;
 String surname;
 String cf;
 String address;
 String cap;
 String city;
 String province;
 String country;
 String phone_1;
 String phone_2;
 String email;
 String vat;

}

当我创建一个患者时,我按其ID存储城市,但我希望在show()和list()方法中,我看到相关城市的名称。

Cities域类链接到我的数据库中的表,如下所示

class Cities {

String cityName;
String capOfCity;
String provinceOfCity;

static constraints = {
}

static mapping = {
    table 's_cap'
    id column: 'idcap'
    cityName column: 'comune'
    capOfCity column: 'cap'
    provinceOfCity column: 'prov'
    version false
}  
}

我想我必须对db执行查询才能通过id获取其名称,但是如何在gsp中执行此操作?

1 个答案:

答案 0 :(得分:3)

使用您当前的方法,您可以

def show(){
   // look up your patient object
   def patient = Patient.get(123)
   def patientCityObject = Cities.findByCityName(patient.city)
   [patientCityObject: patientCityObject ]
}

GSP:

<p>${patientCityObject.cityName}</p>

然而,

如果您定义域名之间的关联,那么当您访问城市时,Grails会加载您的城市。要访问与Patient关联的城市对象,您可以将其定义如下:

class Patient {
 ...
 Cities city;
 ...

}

然后,当您拥有患者对象时,您可以轻松访问其物业城市。

def patient = Patient.get(123)
patient.city.cityName

这将为您提供与您的患者相关的城市对象。然后你可以将它传递给你的GSP并使用它。

要了解有关GORM和对象关系的更多信息,请阅读Object Relational Mapping