これらすべての回答の中で、あなたの答えはありますが、すべての正直なところでは、これはあなた自身の理解をはるかに超えていると思います。フォームタブ1で
http://code.runnable.com/UevQr3zfd_oaAAGn/jquery-ui-tabs
はあなたが次にあなたが2つのドメインを
Address
Postcode
を持っているタブ2で
Name
Age
を持っているとして、あなたはこの例を持っていると仮定すると
クラス
Class User {
String name
String age
Address address
}
Class Address {
String address1
String postcode
}
のでユーザーは、名前、年齢を持っており、また、アドレスにバインドさアドレスはアドレス1と郵便番号
今お使いのコントローラのアクション
def save(MyBean bean) {
Address address = new Address(bean.loadAddress()).save()
User user = new User()
def userMap = bean.loadUser()
user.age=userMap.age
user.name=userMap.name
//The above object that got saved first
user.addresss=address
user.save()
render "hopefully this should have saved it as expected"
}
src/main/groovy/yourPackage/MyBean.groovy
package yourPackage
import grails.validation.Validateable
Class MyBean implements Validateable{
String name
String age
Address address
String address1
String postcode
//Now declare your constraints like your domainClass add validator where required to add additional verification/validation to your objects sent back
//This will return all the objects required as a map to save address domain class
protected Map loadAddress() {
Map results=[:]
results.with {
address1=address1
postcode=postcode
}
return results
}
//this will return the user object
protected Map loadUser() {
Map results=[:]
results.with {
name=name
age=age
}
}
}
でを持っていながら、
その他のかなり複雑なバリデーション豆の例に: PhotosBeanCustomerChatBeanScheduleBaseBean
Other points of reference:
私は、これは周りにあなたの頭を取得するためにあなたにしばらく時間がかかることがあり初心者として考えるが、それは今
たくさん明らかになる提供されるものと期待して言うように
E2A これは本当に複雑です! jqueryタブの代わりに2つのgsp画面を持つことができます
これはあまり意味がありません。
2番目のgspにparamsを渡すだけの2つのアクションがありますか? paramsを確認する必要がアクション2ページ1から受信したんさ
だからpage2.gspで
def TestController {
def index() {
render view: page1
}
//where page 1 is the first form and submits to action2
//action2 picks up parmas from page1
def action2() {
render view: page2, model:[params:params]
}
}
あなたは、
<g:form action="action3">
<g:hiddenField name="originalName" value="${params.originalValue}"/>
<g:hiddenField name="originalName2" value="${params.originalValue2}"/>
<g:hiddenField name="originalName3" value="${params.originalValue3}"/>
Then your actual form content
このこの方法をやってに問題がありますか?そうであれば元のページまたはページ2をレンダリングする必要があります。
ページ2に送信されると、hiddenFieldsはエンドユーザーによって改ざんされる可能性があります。したがって、検証された内容は無効になる可能性があります。もう一度すべてを再検証する方法が必要です。
上記の検証メソッドを使用すると、単にvalidate()関数を呼び出すことができます。または、おそらくpage2から送信されたものと初期値のmd5チェックを作成することができます。
いずれにしても、検証を心配しておらず、それが動作することを確認したい場合は、上記の方法が最も簡単です。
は、私が代わりにjQueryのタブの2 GSP画面のPage1で
を持つことができるあなただけ<g:include action="page2">
を行うと、最初の内の第二GSPが含まれるが、正直なところでは1ページだけの1ページ内の両方のアクションが含まれている可能性ができます。これはなぜ意味がないのですか
何らかの種類の追加パラメータでデータベースに保存し、バックグラウンドジョブを持っていて、5分以上アイドル状態になっているすべての 'not_finished'オブジェクトを削除できないのはなぜですか?!ユーザーのセッションは、オブジェクトIDをデータベースに保存します。 –
jquery-uiタブの後に、さまざまなタブで構成され、1つのサブミットで返されると思うかもしれません。submit http://stackoverflow.com/questions/14468298/displaying-grails-domains-in-jquery-tabs – Vahid