0

同様の質問に対するさまざまな回答を見てきましたが、この特定のケースではありません。

いくつかのフィールドと送信ボタンを備えた Grails gsp があります。最初のフィールドに値を入力し、[送信] をクリックして、コントローラーが残りのフィールド (元の入力フィールドを含む) に値を返すようにします。簡単なページ更新 (AJAX なし) でこれを行いたいのですが、データベースは関係ありません。同一であるが名前が異なる2つのgspページで正常に動作しています。最初のものを呼び出し、値を入力し、送信アクションが 2 番目のものを指すようにします。しかし、私はそれを単一の gsp で実行できるようにしたいと考えています。私のコントローラーの簡略化されたバージョンは次のようになります。

class CalculatorController {

    def index = {
    redirect(action: "input")
    }

    def input= {}

    def calculateValues = {

        def inputString = params.enterValue
        def value2 = 'You entered something on the page'
        [field1: inputString, field2: value2]
   }
}
4

2 に答える 2

0

1 つの gsp のみを使用する場合は、すべてのロジックを同じクロージャ内に含める必要があります。パラメータが渡されたかどうかをテストし、正しい値を返します

于 2012-06-11T03:18:43.823 に答える
0

実際には、すべてのロジックを同じクロージャーに含める必要はありません。calculateValues で使用するビュー テンプレートを指定するだけです...

def calculateValues = {
  def inputString = params.enterValue
  def value2 = 'You entered something on the page'
  render(view: 'input', model: [field1: inputString, field2: value2])
}

render メソッドを使用すると、複数のコントローラー アクションで同じ gsp ビューを再利用できます。

于 2012-06-14T16:34:08.613 に答える