重新路由请求而不将重定向发送到客户端

时间:2015-04-24 03:51:25

标签: java playframework routes playframework-2.3

我有一个非常简单的目的

表单的URI - > /random/*转到/*。例如,/random/users转到/users

我不希望使用redirect()来解决问题。

我尝试过几种方法但不确定实现 -

  1. 在请求到达路由器之前拦截请求。并以某种方式更改URI。我试图覆盖onRequest方法,但无法继续,因为我不知道实现。 (可能的问题:应该路由真的在这里吗?)
  2. 在路由中输入类似/random/*的条目,使其指向控制器方法。从控制器内部再次使用修改后的URI调用路由器方法。再次,这里无法继续执行。
  3. 将路由文件加倍或将正则表达式放在路径文件中。对于每个条目,复制它并将/random附加到它。我不想这样做,因为它使文件难以管理。最后一招真的。
  4. 关于如何实施第1点或第2点,请提供帮助。 如果还有其他更简单的方法,请帮助..

1 个答案:

答案 0 :(得分:0)

添加一个新的随机控制器并创建一个动作,将调用转发给适当的控制器。

使用以下路线:

GET /random/:controller controllers.Random.handleRandom(controller:String)

handleRandom - 操作相应地转发呼叫(有或没有重定向)。你可以做一些反射魔法来将调用转发给其他控制器,或者使用if-then-else-或switch-clause。