0

サーバーを起動してサーバーを停止するコードがあります。ただし、ボタンを押すとサーバーが起動しますが、新しいビューにリダイレクトされます。私が持っているコントローラーのコードは

def test= amazonWebService.ec2.startInstances(new StartInstancesRequest([InstanceToStart]))

新しいビューに移動せずにボタンが押されたときにテストを実行したい。私のgspページにあるコードは

 <g:link action="test">
        <input type="button" value="Start Server" class="button" id="startServer1" />
    </g:link>
4

3 に答える 3

1

ページの更新を気にしない場合は、テスト アクションで元のビューにリダイレクトします。したがって、インデックスを介して現在のビューに到達したと仮定します。

class SomeController {

   def index() {
     // index.gsp rendered via convention
   }

   def test() {
      // execute your code then
      redirect action: index, params: params
   }
}

別のオプションとして、リンクがクリックされたときに Ajax リクエストを送信し、ページをまったく更新する必要はありません。

于 2013-05-14T15:18:55.767 に答える
0

以下は、質問に対する代替回答です。

デフォルトでは、Grails ビュー リゾルバはアクション名に似たビューを見つけようとします。あなたの場合、Grails は test.gsp を見つけようとしています。それがリポジトリにある場合は、それをレンダリングします。Grails URL マッピング機能を使用して、この動作をオーバーライドできます。そこで、特定のアクションに対してどのビューをレンダリングするかを指定できます。

class UrlMappings {

    static mappings = { 
        "/$controller/$action?/$id?"{ 
            constraints { 
            // apply constraints here 
            } 
        }

    "/"(view:"/index") 
    "500"(view:'/error') 

    } 
}

詳細については、http: //grails.org/doc/2.2.x/ref/Plug-ins/URL%20mappings.htmlを参照してください。

于 2013-05-14T17:52:10.923 に答える
0

リモート関数を使用します。ここを参照してください http://grails.org/doc/2.1.0/ref/Tags/remoteFunction.html

于 2013-05-14T17:32:48.980 に答える