У меня есть объект, используемый для входа в мой Spring Web Application.Этот объект должен быть заполнен формой Spring и после проверки введен в сеанс.
Объект входа:
@Component
@SessionScope
public class Credencial {
@CodigoFuncional(message="O valor informado não é um código funcional!")
private String codigoFuncional;
@Size(min=7, message="A senha deve ter pelo menos 7 caracteres")
private String senha;
private String nome;
private int juncao;
private boolean ativo;
public Credencial() {}
public Credencial(String codigoFuncional, String nome,
int juncao, boolean ativo) {
this.codigoFuncional = codigoFuncional;
this.nome = nome;
this.juncao = juncao;
this.ativo = ativo;
}
public String getCodigoFuncional() {
return codigoFuncional;
}
public void setCodigoFuncional(String codigoFuncional) {
this.codigoFuncional = codigoFuncional;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getJuncao() {
return juncao;
}
public void setJuncao(int juncao) {
this.juncao = juncao;
}
public boolean isAtivo() {
return ativo;
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
}
Форма Spring:
<form:form class="m-t" id="form-login" modelAttribute="credencial" name="form-login" role="form" action="/SCDA/validarLogin/" method="POST">
<form:errors cssClass="erro"/>
<form:hidden id="senha-encriptada" path="senha" />
<div class="form-group">
<form:input path="codigoFuncional" type="text" class="form-control" placeholder="Código Funcional" required />
<form:errors path="codigoFuncional" cssClass="erro"/>
</div>
<div class="form-group">
<input type="password" id="senha" class="form-control" placeholder="Senha do CORP" />
<form:errors path="senha" cssClass="erro"/>
</div>
<a href="javascript:validaLogin()" title="Fazer Login" class="btn btn-primary block full-width m-b">Login</a>
</form:form>
Контроллер, который получает форму:
@Controller
@RequestMapping(value="/")
@SessionAttributes("credencial")
public class CredencialController {
@Autowired
private Credencial credencial;
@PostMapping(value="/validarLogin/")
public RedirectView efetuarLogin(RedirectAttributes atributos, @Valid @ModelAttribute("credencial") Credencial credencial, BindingResult resultado, ModelMap modelo){
//validation and database communication
}
}
Когда я отправляю форму, объект «Credencial» имеет нулевые значения и ссылается на Autowiredучебный класс.Есть ли способ, которым я могу получить Credencial Object из формы и поместить его значение в Session, чтобы я мог использовать его только Spring?(Я не использую HttpServletRequest.getSession напрямую)
Я использую Java 6 и Spring 4