如何从Controller中的Service类访问日期变量

时间:2014-05-08 09:07:14

标签: grails

我有以下模型类

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()

现在我不知道如何访问我的startDateendDate变量....我无法使用params访问它们,因为它们不是字符串......任何解决方案。我是grails的新手

2 个答案:

答案 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