2012-06-13 7 views
5

che sto cercando di post parametri di azione, e scrisse nei percorsi:Gioca 2.0 quadro - parametri POST

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

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

e ho un azione

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

mia forma è

<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> 

E non funziona

Per richiesta 'POST /login' [Missing parameter: name]

Cosa sto facendo di sbagliato?

+0

Potete per favore modifica la domanda inserisci il codice del modulo. –

+0

come ipotesi cieca (sviluppatore php qui), il/login/nome:/password: 'definisce che sei ** richiesto ** a dare due parametri aggiuntivi .. uno manca. Questo è ciò che l'errore dice. –

risposta

3

semplicemente cambiare il percorso per il seguente:

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

non includendo il nomi dinamici (: nome e: password) nel percorso di instradamento, l'ipotesi è che le variabili provengano dalla richiesta (IE: i tuoi input html)

L'errore che stai ricevendo indica che nome e password non compaiono nel percorso url ... che è corretto perché il percorso voi specificato nelle vie indica il percorso dovrebbe essere simile a questo:

/login/myname/mypassword

Si prega di verificare http://www.playframework.org/documentation/2.0.1/JavaRouting e guardare la sezione chiamata "Call to metodo di generatore di azione"

+0

Sembra che questo metodo non funzioni per il POST, sto usando questa http://stackoverflow.com/questions/20221233/using-post-routes-parameters-in-play-framework solution – Oleg

3

il percorso non dovrebbe includere parti dinamiche (nome, password) in quanto i dati sono nel corpo e non l'URL