【发布时间】:2011-07-21 18:19:23
【问题描述】:
我正在使用 Spring 框架 3。 我有一个表格,用于将 cmets 发布到文章中。提交表单时,会检查是否有任何错误。 如果没有错误,控制器返回字符串
"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,即文章和表单所在的页面因为 cmets 是!
这是视图解析器:
<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();
}
}
}
【问题讨论】:
-
控制器方法的其余部分是如何定义的?
标签: java forms spring frameworks