0

基本的なウィザードを作成するためにGrailsajaxflowプラグインを使用しています。私が抱えている問題の1つは、デフォルトで使用されるコントローラーアクションの命名です。具体的には、ThingControllerという名前のコントローラーがあり、デフォルトのフローはpagesFlowという名前であるとします。これにより、実行中にウィザードのURLが生成されます。

/thing/pages?execution...

通常、ウィザードは「もの」の追加を許可することを目的としています。それがそうであったように、私はそのようなことを示したURLを好むでしょう..

/thing/add?execution...

pagesFlow定義を変更するか、カスタムURLマッピングを使用してこの結果を達成する方法はありますか?

私は運が悪かったので、両方を簡単に試しました。ajaxflowプラグインにはこのデフォルトの名前が必要なようですが、URLマッピングについてはまだ十分に理解していません。

4

1 に答える 1

1

特にajaxFlowを使用したことはありませんが、以前はgrailswebflowを使用していました。Webflowは基本的に、フローのバックグラウンドでの追加/削除/更新などのさまざまな「アクション」を管理し、フロー名「ページ」のみが公開されるため、通常、要求していることは不可能です。

ただし、本当に明確な名前を付けたい場合、私が考えることができる唯一の回避策は、webflowのサブフロー機能を使用することです。webflowのドキュメントは、grailsのドキュメントhttp://grails.org/doc/latest/guide/theWebLayer.html#subflowsAndConversationsの一部です。

サブフローは、定義する別のフローであるという考え方です。フローは別のフローを呼び出し、2番目のフローに結果を最初のフローに戻すことができます。したがって、あなたの場合、メインフローはaddFlow、updateFlowなどを呼び出します。概念的には、すべてのアクションが単一のフローに属していても、それぞれを独自のフローに分割することを妨げるものは何もありません。そうすれば、URLの名前にアクションを反映させることができます。別のコントローラーでサブフローを定義して、URLのコントローラー名に影響を与えることもできます。

于 2012-06-25T14:14:58.077 に答える