Boa tarde pessoal, estou criando um formulário no spring 3 com annotation e alguns valores estão sumindo no momento do submit.
Ao iniciar o formulário eu carrego um objeto Fila e dou set com o addAttribute porém no momento de pegar o mesmo no submit, ele perde todos os valores que não estavam em inputs dentro da JSP.
Aqui o meu controller:
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
import bpm.processo.model.PrFila;
@Controller
@RequestMapping(value = "/portal/PRFilaGerenciar.sp")
public class FilaGerenciaCtrl {
@RequestMapping(method = RequestMethod.GET)
public String carregarPaginaFormulario(ModelMap model, HttpServletRequest request) {
Long id = CastUtil.paraLong(request.getParameter("idFila"));
PrFila fila = HibernateUtil.consultar(new PrFila(id), "getAtividades");
model.addAttribute("fila", fila);
request.setAttribute(Constantes.URL_PROCESSO, "processo/fila_gerenciar");
return Constantes.TILES_PROCESSO;
}
@RequestMapping(method = RequestMethod.POST)
public String submitForm(@ModelAttribute("fila")
PrFila fila, BindingResult result, SessionStatus status, HttpServletRequest request) {
status.setComplete();
request.setAttribute(Constantes.URL_PROCESSO, "processo/fila_gerenciar");
return Constantes.TILES_PROCESSO;
}
}
e aqui a minha JSP.
<form:form action="PRFilaGerenciar.sp" modelAttribute="fila" method="post">
<table class="table" style="width: 100%">
<tr>
<td class="cabecalhoTabela">Nome</td>
<td class="cabecalhoTabela">Atividade</td>
<td class="cabecalhoTabela">Processo</td>
<td class="cabecalhoTabela">Critério ordenação</td>
<td class="cabecalhoTabela">Sentido ordenação</td>
<td class="cabecalhoTabela">Quantidade em fila</td>
</tr>
<tr>
<td class="celulaTabela"><form:input path="nome" /></td>
<td class="celulaTabela"><c:out value="${fila.prAtividade.nomeResumo}" /></td>
<td class="celulaTabela"><c:out value="${fila.prAtividade.prGrupoDeAtividade.prVersao.processo.nomeResumo}" /></td>
<td class="celulaTabela"><c:out value="${fila.criterioOrdenacao}" /></td>
<td class="celulaTabela"><c:out value="${fila.ordenacao}" /></td>
<td class="celulaTabela"><c:out value="${fila.ordenacao}" /></td>
</tr>
</table>
<input type="submit" value="Teste" />
</form:form>
No código acima apenas o atributo Nome da fila está no objeto no momento do submit, acredito que por conta do input.
Antigamente eu utilizava o Spring 2 e eu construia o objeto “command” no formBacking, é a primeira vez que faço um formulário no Spring 3 e talvez esteja fazendo algo errado.