呼叫控制器内部的控制器.播放框架



我有一个调用控制器的登录表单。

<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://localhost:9000/application/callws"

我在controllers/FOLDER1/FOLDER2/My_controller.java中有一个控制器。如果为true,我希望从该控制器调用index(),并通过这样做将url更改为与该页面相关的内容。

在我的路线上:

GET     /My_Page   FOLDER1/FOLDER2.My_controller.index

问题是:如何从第一个控制器调用其他页面并将url更改为该页面。

我没有正确使用框架?

您应该简单地调用控制器。

MyController.myMethod()

如果您想传输消息或其他信息(例如错误消息),您应该使用闪光灯范围:http://www.playframework.org/documentation/1.2.4/controllers#session

尝试使用

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

最新更新