私には1つのドメインがあり、そのドメインには25人以上のメンバーがいます。このメンバーの価値は、1つの形式からもたらされます。しかし、それらのあまりにも多くのフィールドを埋めるのは気分が悪いです。そこで、入力フォームをさまざまな段階に分割することを考えました。
必要なすべての入力のフィールドを持つFormObjectというクラスを作成しました。問題は、このオブジェクトをページ間で渡す方法がないことです。
セッションのスコープを持つサービスを使用すると、FormObjectへの参照を保持し、サービスからメソッドを呼び出して再度取得できるのではないかと考えていました。
<g:set var="formService" value="${new FormService()}" />
class FormService{
static transactional = false
static scope = "session"
FormObject myObject = new FormObject()
def resetForm(){
myObject=new FormObject()
}
def getForm(){
return myObject
}
}
それをGSPに使用しました
<g:set var="myForm" value="${formService.getForm()}" />
ただし、データはページ間で保持されません。
myObjectプロパティを静的として定義した場合、それは持続しますが、これが本番環境に到達すると、myObjectがすべてのユーザー間で共有されるのではないかと心配しています。
静的にした場合にどうなるかを誰かが確認できますか?各セッションには静的フォームオブジェクトがありますか、それとも静的フォームオブジェクトは1つだけですか?