我有一个调用控制器的登录表单。
<form action="@{Application.callWS()}" method="post">
...
</form>
public static void callWS(){
//some logic
if(true){
renderTemplate("FOLDER1/FOLDER2/MY_View.html"); //call other page
}
else{
renderTemplate("Application/index.html", error); // back to prev page with error variable
}
}
如果是,我想要打电话给其他页面。但是当我执行renderTemplate()时,我页面中的url仍然相同。的 “http://本地主机:9000 /应用/ callws”
我在controllers/FOLDER1/FOLDER2/My_controller.java
有一个控制器。
如果为true,我想从该控制器调用index()并通过这样做将url更改为与该页面相关的内容。
在我的路线中:
GET /My_Page FOLDER1/FOLDER2.My_controller.index
问题是:如何从第一个控制器调用其他页面并将URL更改为该页面。
我没有正确使用框架?
答案 0 :(得分:3)
您应该只是致电控制器。
MyController.myMethod()
如果要传输消息或其他信息(例如错误消息),则应使用闪存范围: http://www.playframework.org/documentation/1.2.4/controllers#session
答案 1 :(得分:0)
尝试使用
controllers.FOLDER1.FOLDER2.My_controller.index
(不是FOLDER / FOLDER2)因为FOLDER映射到java包,它们用点分隔(package1.subpackage.Class)。确保您的Controller具有包定义作为其第一个语句:
package controllers.FOLDER1.FOLDER2;
这可以让你的控制器编译:
controllers.FOLDER1.FOLDER2.My_controller.index();
以及路线档案中:
controllers.FOLDER1.FOLDER2.My_controller.index