我有以下模型类
public class User{
String firstName
String lastName
Date startDate
Date endDate
static constraint(){
firstname(nullable:true)
lastname(nullable:true)
startDate
endDate
}
}
我的服务类
public class UserService {
public void addUser(String firstName, String lastName, Date startDate, Date endDate){
User user = new User()
user.firstName=firstName
user.lastName=lastName
user.startDate=startDate
user.endDate=endDate
}
}
现在我的问题是如何在我的控制器中访问我的日期变量 我的控制器类
public class UserController {
def applyService
def register = applyService.addUser(params.firstName.toString(), params.lastName.toString()
现在我不知道如何访问我的startDate
和endDate
变量....我无法使用params访问它们,因为它们不是字符串......任何解决方案。我是grails的新手
答案 0 :(得分:0)
如果我是你,我会改变如下。
def register = applyService.addUser(params.firstName.toString(),params.lastName.toString()
,parseDate(params['startDate'] ,
parseDate(parmas['endDate']))
假设您使用的是grails版本> 2.3改变如下
Config.groovy中的设置
grails.databinding.dateFormats = [
'MMddyyyy', 'yyyy-MM-dd HH:mm:ss.S', "yyyy-MM-dd'T'hh:mm:ss'Z'"]
import org.grails.databinding.BindingFormat
public class User{
String firstName
String lastName
@BindingFormat('yyyy-MM-dd HH:mm:ss.S') // or any format you like
Date startDate
@BindingFormat('yyyy-MM-dd HH:mm:ss.S')
Date endDate
static constraint(){
firstname(nullable:true)
lastname(nullable:true)
startDate
endDate
}
}
干杯!
答案 1 :(得分:0)
你遗弃了Grails最强大的功能之一:Data Binding
我会做类似的事情:
class UserController {
def userService
def save = {
def user = new User(params)
userService.addUser(user)
}
}
当使用控制器上的参数映射实例化域对象时,Grails会为您找出用户所在字段的正确类型,并相应地设置它们。在您的服务上,您只需保留实例即可。
我建议您同时查看Command Objects。