2012-06-13 97 views
5

我想POST參數來操作,並寫在路線:播放2.0框架 - POST參數

# Home page 
GET /      controllers.Application.index() 

POST /login/name:/password: controllers.Application.login(name, password) 

,我有一個動作

public static Result login(String name, String password) { 
    return ok(name + " " + password); 
} 

我的形式是

<form action="/login" method="post"> 

    <input name="name" type="text" id="name"> 
    <input name="password" type="password" id="password"> 
    <input type="submit" value="Login"> 

</form> 

而且它不起作用

對於請求'POST /login' [Missing parameter: name]

我在做什麼錯?

+0

你能部分請編輯該問題放置表單的代碼。 –

+0

作爲一個盲猜(這裏的PHP開發人員),'/ login/name:/ password:'定義你是**必需的**來給出兩個額外的參數..缺少一個。這就是錯誤所說的。 –

回答

3

路線簡單地更改爲以下:

POST /login controllers.Application.login(name, password) 

不納入動態名稱(:名稱和:密碼)在路由路徑,假設是變量來自請求(IE:您的html輸入)

您收到的錯誤表明名稱和密碼不會出現在網址路徑...這是正確的,因爲路徑在你的路由指定您指示的路徑應該是這個樣子:

/登錄/ MYNAME /輸入mypassword

請檢查http://www.playframework.org/documentation/2.0.1/JavaRouting看看所謂的「行動呼籲生成方法」

+0

似乎這種方法不適用於POST,我正在使用這個http://stackoverflow.com/questions/20221233/using-post-routes-parameters-in-play-framework解決方案 – Oleg

3

你的路線不應包括動態的部分(名稱,密碼),因爲數據是在身體,而不是網址