Spring mvc + jsp的web项目,用eclispe jetty插件来运行它,刚才遇到一个很奇怪的现象。为什么不能仅仅在spring的mvc控制器中返回模型jquery的post请求
突然在Eclipse控制台,我看到下面的错误消息
SEVERE: PWC6117: File "...foo%2Fsave.jsp" not found
起初让我感到很困惑,那么我想这些方式来解决这个问题,例如干净的项目,重新启动eclipse等,但仍然存在这个错误。
最后,我记得我已经修改控制器代码,起初代码
@ResponseBody
public Object save(FooDTO fooDTO, Model model, RedirectAttributes redirectAttributes) {
if (!beanValidator(model, fooDTO)){
return "foo";
}
}
,但如果有效的失败,页面不能有任何的消息显示,
function(data,status){
top.$.jBox.tip(data.message, 'info', { });
window.location = "${ctx}/foo/queryById?fooId=${foo.fooId}";
});
因为数据只是foo
字符串,所以data.message是undefined
。
时有效的失败,将会把消息转换成模型,
model.addAttribute("message", sb.toString());
所以我上面的控制器代码更改
if (!beanValidator(model, fooDTO)){
return model;
}
,这只是回归模型,我认为,如果这样做了页面可以显示错误消息,例如参数必须> = 1。
但它没有,它有上述错误。
SEVERE: PWC6117: File "...foo%2Fsave.jsp" not found
那么为什么return model
可能会导致此错误。
然后,我在这种情况下,一切都很好试图返回另一个对象,
return new ResponseDTO(model.asMap().get("message").toString());
。
所以两者都返回一个对象,为什么不能只返回model
?