2012-04-20 117 views
0

更改gsp域類屬性的方法是什麼?Grails,從gsp更改域類屬性

例如:

域類項目具有類型爲date的dueDate。 我想在gsp內設置它的日期而不使用標籤 原因是,我使用的jquery的datepicker,這是很好的,因爲而不是有一個醜陋的下拉mm/dd/yyyy它有一個很好的小日曆一點擊。 Anywho,有什麼想法?

在此先感謝:d:d:d

回答

1

好,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> 

+0

那麼如何將「新日期()」傳遞給這個控制器調用。因爲即使沒有ajax,我也可以用下面的語法調用控制器方法: $ {updateDateUsingAjax()} 對不對? 但事情是,我如何通過一個新的日期?我有點失落,我看到你的想法,這似乎是天才,但我錯過了一些細節。因爲現在我所能做的就是使用內置的標籤。謝謝你的想法,我只想更多地理解它。 – 2012-04-20 08:28:20

+0

只需一秒鐘,我正試圖爲您提供示例視圖。所以你得到整個上下文 – saw303 2012-04-20 09:00:17

+0

好吧,非常感謝你,因爲我超級迷失。事實上,現在我不知道如何在gsp中真正調用控制器。我們所有的東西都將腳手架設置爲真,然後我們刪除了它,並且所有東西都是自動創建的。我正在嘗試閱讀文檔,並且沒有意義如何做這種事情。 – 2012-04-20 09:12:09

0

有可能滿足您的需要一個Grails JQuery用戶界面插件。有關更多信息,請參閱http://grails.org/plugin/jquery-ui

即使這個特定的插件不適合您的需求,我會認爲會有一個插件那裏會。

+0

這只是沒有在所有的工作,我得到提交錯誤,它沒有提交類型日期或類似的東西。 – 2012-04-24 03:24:01