model view controller - una - Marco Play 2.0-Parámetros POST
pasar datos entre controladores mvc (2)
Estoy tratando de POSTAR parámetros a Acción, y escribí en las rutas:
# 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 la solicitud ''POST /login'' [Missing parameter: name]
¿Qué estoy haciendo mal?
su ruta no debe incluir partes dinámicas (nombre, contraseña) ya que los datos están en el cuerpo y no en la url
Simplemente cambie la ruta a lo siguiente:
POST /login controllers.Application.login(name, password)
Al NO incluir los nombres dinámicos (: nombre y contraseña) en la ruta de enrutamiento, se asume 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 la ruta de la url ... lo cual es correcto porque la ruta que especificó en sus rutas indica que la ruta debería verse más o menos así:
/ login / myname / mypassword
Consulte http://www.playframework.org/documentation/2.0.1/JavaRouting y mire la sección llamada "Método generador de llamada a la acción"