2012-06-13 24 views
5

Estoy intentando escribir un mensaje parámetros a la acción, y escribió en las rutas:2,0 marco - parámetros POST

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

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

y tengo una acción

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

mi forma es

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

Y no funciona

Para solicitud 'POST /login' [Missing parameter: name]

¿Qué estoy haciendo mal?

+0

Puede usted por favor edita la pregunta pon el código del formulario. –

+0

como una conjetura ciega (desarrollador de php aquí), el '/ login/nombre:/contraseña:' define que ** se requiere ** que proporcione dos parámetros adicionales ... falta uno. Eso es lo que dice el error. –

Respuesta

3

basta con cambiar la ruta a lo siguiente:

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

al no incluir la nombres dinámicos (: nombre y contraseña) en la ruta de enrutamiento, la suposición es que las variables provienen de la solicitud (IE: sus entradas html)

El error que está recibiendo indica que el nombre y la contraseña no aparecen en el url path ... que es correcto porque el camino que se especifica en sus rutas indica el camino debe ser algo como esto:

/login/myname/mypassword

favor verifique http://www.playframework.org/documentation/2.0.1/JavaRouting y mirar la sección llamada "La llamada al método generador de la acción"

+0

Parece que este método no funciona para POST, estoy usando esta http://stackoverflow.com/questions/20221233/using-post-routes-parameters-in-play-framework solution – Oleg

3

su ruta no debe incluir partes dinámicas (nombre, contraseña) ya que los datos se encuentra en el cuerpo y no la url

Cuestiones relacionadas