Não entendi o porque do uso do "c:url" no action do formulário.
Quando envio os dados pelo formulário,
Recebo o seguinte erro:
type: Status report
message: /vraptor-produtos/login/%3Cc:url%20value=%27/login/loga%27%20/%3E
description: The requested resource is not available.
LoginController
package br.com.caelum.online.loja.controlador;
import br.com.caelum.online.loja.dominio.UsuarioLogado;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
@Resource
public class LoginController {
private final Result result;
private final UsuarioLogado usuarioLogado;
public LoginController(Result result, UsuarioLogado usuarioLogado) {
this.result = result;
this.usuarioLogado = usuarioLogado;
}
public void formulario() {
}
public void loga(String user, String pass) {
if (user.equals("caelum") && pass.equals("vraptor")) {
this.usuarioLogado.setLogin(user);
result.redirectTo(ProdutoController.class).lista();
} else {
result.redirectTo(LoginController.class).formulario();
}
}
}
formulario.jsp
<html>
<body>
<table>
<form action="<c:url value='/login/loga' />" method="post">
<tr>
<td>Login</td>
<td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Senha</td>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<td><input type="submit" value="Login" /></td>
</tr>
</form>
</table>
</body>
</html>
UsuarioLogado
package br.com.caelum.online.loja.dominio;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.SessionScoped;
@Component
@SessionScoped
public class UsuarioLogado {
private String login;
private String senha;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
Desde já agradecido!