更改gsp域类属性的方法是什么?Grails,从gsp更改域类属性
例如:
域类项目具有类型为date的dueDate。 我想在gsp内设置它的日期而不使用标签 原因是,我使用的jquery的datepicker,这是很好的,因为而不是有一个丑陋的下拉mm/dd/yyyy它有一个很好的小日历一点击。 Anywho,有什么想法?
在此先感谢:d:d:d
更改gsp域类属性的方法是什么?Grails,从gsp更改域类属性
例如:
域类项目具有类型为date的dueDate。 我想在gsp内设置它的日期而不使用标签 原因是,我使用的jquery的datepicker,这是很好的,因为而不是有一个丑陋的下拉mm/dd/yyyy它有一个很好的小日历一点击。 Anywho,有什么想法?
在此先感谢: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用户界面插件。有关更多信息,请参阅http://grails.org/plugin/jquery-ui。
即使这个特定的插件不适合您的需求,我会认为会有一个插件那里会。
这只是没有在所有的工作,我得到提交错误,它没有提交类型日期或类似的东西。 – 2012-04-24 03:24:01
那么如何将“新日期()”传递给这个控制器调用。因为即使没有ajax,我也可以用下面的语法调用控制器方法: $ {updateDateUsingAjax()} 对不对? 但事情是,我如何通过一个新的日期?我有点失落,我看到你的想法,这似乎是天才,但我错过了一些细节。因为现在我所能做的就是使用内置的 标签。谢谢你的想法,我只想更多地理解它。 –
2012-04-20 08:28:20
只需一秒钟,我正试图为您提供示例视图。所以你得到整个上下文 – saw303 2012-04-20 09:00:17
好吧,非常感谢你,因为我超级迷失。事实上,现在我不知道如何在gsp中真正调用控制器。我们所有的东西都将脚手架设置为真,然后我们删除了它,并且所有东西都是自动创建的。我正在尝试阅读文档,并且没有意义如何做这种事情。 – 2012-04-20 09:12:09