【发布时间】:2017-01-03 10:11:31
【问题描述】:
我在 Spring MVC 中创建了一个应用程序,用于测试回滚和提交功能。我正在使用事务。在服务中,我创建了另一个联系人对象,但未指定必填字段的员工 ID。当保存和回滚工作时出现异常时,应用程序可以正常工作。
但问题是异常正在我的 jsp 页面中打印。
谁能告诉我一些防止在视图中显示异常的解决方案
控制器
@RequestMapping(value="/saveContact", method=RequestMethod.POST)
public String create(@ModelAttribute("newContact")Contacts contact, BindingResult result, SessionStatus status)
{
validator.validate(contact, result);
if (result.hasErrors())
{
return "newContact";
}
contactsDAO.save(contact);
status.setComplete();
return "redirect:viewAllContacts.do";
}
服务
public int save(Contacts contact)
{
int i = 0;
try
{
i = (Integer) sessionFactory.getCurrentSession().save(contact);
Contacts contacts =new Contacts();
contacts.setAddress("ABCD");
contacts.setMobile("8181");
i = (Integer) sessionFactory.getCurrentSession().save(contacts);
}
catch(Exception exception)
{
exception.printStackTrace();
}
return i;
}
编辑
@RequestMapping(value="/saveContact", method=RequestMethod.POST)
public String create(@ModelAttribute("newContact")Contacts contact, BindingResult result, SessionStatus status) throws SQLException
{
validator.validate(contact, result);
if (result.hasErrors())
{
return "newContact";
}
try {
contactsDAO.save(contact);
}
catch (Exception ex) {
System.out.println("enrtered");
result.reject("DUPKEY");
ex.printStackTrace();
return "redirect:saveContact.do";
}
status.setComplete();
return "redirect:viewAllContacts.do";
}
【问题讨论】:
-
检查/配置spring异常解析器
-
@user3145373ツ 实际上正如我所说,我已经创建了一个异常来检查回滚功能
-
您能否解释一下异常是什么,如果它是您在服务中捕获的异常(以及它是如何重新抛出的)以及什么意思:在我的 jsp 中打印 ?它是出现在预期页面的中间还是出现在预期页面的中间?
-
@SergeBallesta 看到这里异常不是问题,因为我使用的是
@Transactional,所以我们在事务期间遇到了一些异常@ 没有必要明确定义事务。因此,当发生异常时,它会抛出并向用户显示该异常,而不是我如何告诉用户某些事情出错了 -
@SergeBallesta 和Hibernate, Spring,
@Transactional- surround with try/catch? 一样,但是我没有得到任何解决方案,您能否指定一些与上述代码相关的代码
标签: java spring jsp spring-mvc