我尝试在执行事务后进行重定向,但事务永远不会被执行。最令人惊讶的是,当我点击提交按钮时,我确实得到了这个隐藏的URL重定向,我不明白为什么? 我的控制器代码:
@RequestMapping("/saveCyclosUsers")
public ModelAndView saveCyclosUsersCredentials(@ModelAttribute("cyclosUsers") CyclosUsers cyclosUsers, BindingResult bindingResult)
{
cyclosUsersService.saveCyclosUsers(cyclosUsers);
System.out.println("Cyclos Users List:");
return new ModelAndView("redirect/cyclosUsersList.html");
}
我的JSP页面:
<c:url var="userRegistration" value="saveCyclosUsers.html"/>
<form:form id="registerForm" modelAttribute="cyclosUsers" method="post" action="${userRegistration}">
DAO代码:
@Override
public void saveCyclosUsers(CyclosUsers cyclosUsers) {
//sessionFactory.getCurrentSession().save(cyclosUsers);
sessionFactory.getCurrentSession().createSQLQuery("INSERT INTO lower_credit WHERE" +"WEB-INF.views.Register.ownerName.selectedItem =" + "owner_name");
}
一旦我点击提交按钮,这就是我得到的错误: 类型状态报告
message /CyclosProjectOnOverdraft/WEB-INF/views/redirect/cyclosUsersList.html.jsp
description The requested resource is not available.
扩展名是“cyclosUsersList.html.jsp”,html.jsp。我觉得这很奇怪。我做错了什么?
答案 0 :(得分:1)
使用:
return new ModelAndView("redirect:cyclosUsersList.html"); // Not redirect/cyclosUsersList.html
答案 1 :(得分:0)
你的spring mvc applicationContext中可能有一个ViewResolver,后缀设置为'.jsp'。 因此,默认情况下,spring会将“.jsp”附加到您的视图名称。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
为避免使用视图解析器,您可以直接返回“视图”对象,然后不使用视图解析器。您也可以使用@ResponseBody,然后绕过查看解析器。