我正在使用 Spring 框架 3.我有一个用于对文章发表评论的表格.提交表单时,会检查是否有任何错误.如果没有错误,控制器返回字符串
"redirect:entryView/"+comment.getEntryId();
一切都很好.
但是当出现一些错误时,如果控制器返回
"redirect:entryView/"+comment.getEntryId();
错误应该显示在带有 spring-form.tld 标签的表单附近:
<form:errors path="author"/>
但是没有显示错误!当我试图返回时
"entryView/"+comment.getEntryId();
如果没有 redirect: 前缀,那么它会去/rus/WEB-INF/jsp/entryView/8.jsp 并且有 HTTP 状态 404.但它必须去 http://example.com/rus/entryView/8,即文章和评论表单所在的页面!
这是视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
我该怎么办?
控制器的其余部分:
@Controller public class CommentController { private RusService rusService; private CommentValidator commentValidator; @Autowired public CommentController(RusService rusService,CommentValidator commentValidator){ this.rusService = rusService; this.commentValidator = commentValidator; } @RequestMapping(value="/addComment",method=RequestMethod.POST) public String addComment(Comment comment,BindingResult result){ commentValidator.validate(comment,result); if(result.hasErrors()){ return "redirect:entryView/"+comment.getEntryId(); }else{ rusService.postComment(comment); return "redirect:entryView/"+comment.getEntryId(); } } }