PlayFramework 2.0.2路由中的多个参数

时间:2012-08-11 01:58:26

标签: playframework playframework-2.0

我似乎无法让多个参数工作如果我添加一个参数一切都很好,只要我添加第二个参数我总是得到一个

No data received
Unable to load the webpage because the server sent no data.
Here are some suggestions:
Reload this webpage later.
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.

其他人可以确认您可以使用play 2.0.2为请求添加第二个参数吗? (使用java)

我的网址就像这个一样简单

http://localhost:9000/account/foruser?username=somethig&create=0

和路线

GET     /account/foruser
controllers.user.UserController.foruser(username:String, create:Boolean ) 

3 个答案:

答案 0 :(得分:13)

你应该更多关注路线docs and samples

通常,如果您使用带有&name=value的命名参数,则无需在路径文件中指定它们。而是在Java中使用DynamicForm来访问它们。

路径文件用于匹配链接的unnamed部分和控制器的动作和参数。所以你的链接应该是这样的:

http://localhost:9000/account/foruser/something/0

和路线(当然这需要放在路线档中的一行:

GET     /account/foruser/:username/:create
   controllers.user.UserController.foruser(username: String, create: Integer ) 

请注意,有一些错误报告在路由中使用布尔类型,因此使用某些数字类型更安全。

答案 1 :(得分:0)

@biesior我使用2.0.4和两种类型的参数

会遇到同样的问题

档案路线:

GET /v2/object/all/data/:from/:until/:all           controllers.ObjectController.getAllData(from: String, until: String , all: Boolean, username: String ?= null, password: String ?=null)

文件控制器:

public static Result getAllData(
            @PathParam("from") String from,
            @PathParam("until") String until,
            @PathParam("all") Boolean all,
            @QueryParam("username") String username, @QueryParam("password") String password)

经过多次测试后我终于解决了这个问题。您应该使用“boolean”而不是Boolean,因此“getAllData”转换为:

public static Result getAllData(
            @PathParam("from") String from,
            @PathParam("until") String until,
            @PathParam("all") boolean all,
            @QueryParam("username") String username, @QueryParam("password") String password)

答案 2 :(得分:0)

一个简单的例子:

与此路线对应的正确网址:

GET     /user/update:action/:id controllers.myFunction(action: String, id: String)

是网址:

myWebsite.com/user/update$action=update/$id=a@a.fr

请注意:

  • 每个url参数都以$
  • 开头
  • 不&要么 ?在网址!
  • /之间:id和:action必须在那里。播放重定向到没有它的正确网页,但如果你想拥有正确的价值,那就是必要的(即action =>' $ action = update'和id =>' $ id = a@a.fr')传送到您的职能
  • 如果出现错误,java会显示错误,并使用正则表达式应用于每个路径。