我有一个启动服务器并停止服务器的代码。但是,当我按下按钮时服务器启动但它也会将我重定向到新视图。控制器中的代码是
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>
答案 0 :(得分:1)
如果您不介意刷新页面,请在测试操作中重定向到您来自的同一视图。因此,假设您通过索引获取当前视图:
class SomeController {
def index() {
// index.gsp rendered via convention
}
def test() {
// execute your code then
redirect action: index, params: params
}
}
您可以选择在单击链接时提交Ajax请求,而不必刷新页面。
答案 1 :(得分:0)
答案 2 :(得分: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