在我的应用程序中,我想处理CannotCreateTransactionException,sql异常和其他异常。我是春天的mvc和hibernate的新手。如果有什么不是最好的方式那么请告诉我,以便我可以改变我的代码。
在我的控制器中的mehtod是这样的@RequestMapping(value="/validatingmobilenumber",method = RequestMethod.GET)
@ResponseBody()
public String validateMobileNumber(@RequestParam("mobilenumber") String mobilenumber)
{
try
{
User userDetails=userServices.getUserByPhoneNumber(mobilenumber);
if(userDetails.getUserID()!=0)
{
return "mobilenumber already exists";
}
else
return "new mobilenumber";
}
catch(Exception e)
{
e.printStackTrace();
}
return "Unable to connect to DB";//if any type of exception occurred this is going to returned.
}
我这样的服务
@Service("userServices")
public class UserServicesImpl implements UserServices {
@Autowired
UserDao userDao;
@Override
public User getUserByPhoneNumber(String phoneNumber) {
return userDao.getUserByPhoneNumber(phoneNumber);
}
}
我的道歉
@Transactional
@Repository("UserDao")
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
@Override
public User getUserByPhoneNumber(String phoneNumber) {
User userDetails=new User();
User userDetails1=new User();
try
{
if((userDetails1=(User) sessionFactory.getCurrentSession().createQuery("from User where phoneNumber=:phoneNumber")
.setParameter("phoneNumber", phoneNumber).uniqueResult())!= null)
{
return userDetails1;
}
}
catch(Exception e)
{
userDetails.setUserID(0);
}
return userDetails;
}
}
答案 0 :(得分:0)
我知道这个帖子有点旧。希望我会帮助别人。
这是什么问题?你有问题,也有解决方案!
在Ajax调用中,你将完全像你现在所做的那样,你将在你的jsp页面中处理响应,如果没有Ajax调用,你将需要将页面名称作为字符串返回并附加错误你想要在model.addAttribute("errorMessage", errorMessage);