圣杯,从 GSP 更改域类属性



GSP 中更改域类属性的方法是什么?

前任:

域类项目具有日期类型的到期日期。我想在 gsp 中,在不使用标签的情况下设置其日期原因是,我正在使用jquery的日期选择器,这很好,因为没有为mm/dd/yyyy设置一个丑陋的下拉列表,它有一个漂亮的小日历供人们点击。随便谁,有什么想法吗?

提前致谢:D :D :D

好吧,Grails使用MVC模式,因此您不应该直接更改GSP页面中的域类属性。

当然,您可以使用 JQuery 日期选取器,但您应该提供一个控制器操作来更新您的域类属性

def updateDateUsingAjax() {
  def domain = MyDomain.load(params.id)
  /*
  Lets pretend the content of params.date has the format MM/dd/yyyy  
  You can use Date.parse method of the Groovy JDK to create a java.util.Date instance of a String. 
  http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#parse(java.lang.String, java.lang.String)
  */
  domain.myDate = Date.parse('MM/dd/yyyy', params.date)
  domain.save()
}

现在,您只需编写对此控制器操作的 Ajax 调用,即可成功地将表示层与应用程序的其余部分分离。

这就是您的 GSP 的样子。

<!doctype html>
<html>
<head>
    <meta name="layout" content="main"/>
    <title>Welcome to Grails</title>
    <r:require module="jquery-ui"/>
</head>
<body>
<div>
    <g:formRemote name="myForm" url="[controller: 'standard', action: 'updateDateUsingAjax']" onSuccess="showDialog()">
        <p>Your date: <g:textField name="pick"/> </p>
        <p><g:hiddenField name="id" value="your id"/></p>
        <input type="submit" value="Delete Book!" />
    </g:formRemote>
</div>
<div id="dialog" title="Success" style="display:none;">
    <p>You have successfully updated your date</p>
</div>
<script type="text/javascript">
    $(document).ready(function()
    {
        $("#pick").datepicker({dateFormat: 'yy/mm/dd'});
    })
    function showDialog() {
        $("#dialog").dialog();
    }
</script>
</body>

有一个Grails JQuery UI插件,可能适合您的需求。有关详细信息,请参阅 http://grails.org/plugin/jquery-ui。

即使这个特定的插件不适合您的需求,我认为也会有一个插件可以。

也许你应该尝试Joda-Time插件:http://grails.org/plugin/joda-time

看看这篇博文:Rendering Grails Joda-Time date input with HTML5、jQuery 和 Modernizr 跨浏览器

相关内容

  • 没有找到相关文章

最新更新