我有一个问题。
我在 play 框架中有表单,当我想打开新的时,我使用此链接:link/projeto/novo
我需要保存一些字段,然后进行一次验证,如果某些字段为空,我会发送一个“错误请求”,如下所示:
public static Result grava() throws IOException{
Long id;
Http.Request request = request();
Form<Projeto> projetoFormRequest = projetoForm.bindFromRequest();
listaDeErros = new ArrayList<String>();
Projeto projeto = projetoFormRequest.get();
if(StringUtils.isEmpty(projeto.getNomeProjeto())){
listaDeErros.add(Messages.get("projeto.form.validacao.nomeProjetoObrigatorio"));
}
if(projeto.getTipoProjeto().getIdTipoProjeto()==null){
listaDeErros.add(Messages.get("projeto.form.validacao.tipoDeProjetoObrigatorio"));
}
...
if(listaDeErros.size()>0){
return badRequest(cadastro.render(projetoForm, listaDeErros));
}
...
我的路线:
GET /projeto/novo controllers.ProjetoController.cadastroProjeto()
POST /projeto/grava controllers.ProjetoController.grava()
但是我在浏览器中的链接更改为link/projeto/grava
我想保留相同的链接link/projeto/novo
我怎样才能做到这一点?
谢谢
最佳答案
当您在 grava
操作中返回 badRequest()
时,它会保留在那里...badRequest
是一个 Result
不是重定向
。
如果出现错误,您可以尝试重定向到 cadastroProjeto
,无论如何,您都需要以某种方式传递 projetoForm
,也许使用缓存?
提示:使用英文名称表示操作、模型、 View 等是个好习惯 - 即使路线是葡萄牙语;)
关于java - 错误请求中的重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917097/