您的位置:首页 > 编程语言 > Java开发

为什么不在ssh的action层做事务处理

2016-06-17 15:48 423 查看
首先我们来看下面一段代码,通常我们在action里面必须做异常处理,而在service层直接抛出异常,下面代码的问题是:

1:如果加上了try{}catch代码,spring发现如果异常不能抛出,事务不能实现回滚 ,spring认为没有异常。

2:直接抛出异常,不使用try catch块又不能跳转error页 

想两者都兼备该如何处理呀? 当然是把事务声明加载service层

Java代码  


  @Transactional(propagation=Propagation.REQUIRED)  

  public String addFeeByCredit()throws Exception{  

        /*try {*/  

            fee.setLrrq(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));  

            fee.setLrr(getCurrentUserName());  

            fee.setShzt("0");  

            fee.setSfrs(0);  

            successFlag = feeDAO.addCreditFee(fee);  

            dpt = feeDAO.getDepartment();  

            /*String s = null; 

            s.length();*/  

            return "success";  

//      } catch (Exception ex) {  

//          ex.printStackTrace();  

//          successFlag = false;  

//          return "error";  

//      }  

          

    }  

0


关于action中spring事务控制的问题0

发现如果异常不能抛出,事务不能实现回滚 
直接抛出异常,不使用try catch块又不能跳转error页 
想两者都兼备该如何处理呀? 

Java代码  


  @Transactional(propagation=Propagation.REQUIRED)  

  public String addFeeByCredit()throws Exception{  

        /*try {*/  

            fee.setLrrq(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));  

            fee.setLrr(getCurrentUserName());  

            fee.setShzt("0");  

            fee.setSfrs(0);  

            successFlag = feeDAO.addCreditFee(fee);  

            dpt = feeDAO.getDepartment();  

            /*String s = null; 

            s.length();*/  

            return "success";  

//      } catch (Exception ex) {  

//          ex.printStackTrace();  

//          successFlag = false;  

//          return "error";  

//      }  

          

    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息