|
楼主 |
发表于 2018-8-22 09:41:33
|
显示全部楼层
好了,已经处理好了。上来结贴。
主要的原因应该大致清楚了,要说解决方案可能涉及到我的业务逻辑。
有两个表, 应收表和应付表 ,功能逻辑大概是应收表或者应付表在审核或者反审的时候,调用订单表的controller里面的方法,返回受影响的函数。
原本因为应收和应付在审核和反审的时候,都是更改订单里面的值和状态,所以在订单表的controller里面写一个公用的方法,然后应收和应付表在controller里面调用订单的控制类写的方法。
现在看来是行不通的。似乎不能一个controller类调用其他表的controller类里面的公用方法。
然后我就把提取出来的处理方法里面的代码,移到应收应付表里面的controller里面了。一模一样的语法,不会再报空指针异常了。只不过麻烦一点,同样的处理方式不能公用。相同的语句要写4次。应收审核一次,应收反审一次,应付审核一次,应付反审一次。
问题点大概有个方向,看到上面大神的回复,我又仔细看了一遍 Spring-mvc.xml 上面有这么一句话:“加载controller的时候,不加载service,因为此时事物并未生效,若此时加载了service,那么事物无法对service进行拦截”
所以我的猜测原因是:我虽然想把类似的代码放到一个公用的类里面去处理,然后方便其他类调用,但是这个时候可能Spring并不加载我在controller类里面调用的service。除非我是前台用.do的方式调用了这个控制类的方法。就可以加载service。这也是我的猜测,Spring-mvc还是不太熟,不太理解映射的机制和原理。
不过不管怎么说,白猫黑猫抓到老鼠就是好猫,虽然方法是笨点,也不太理解原理,自行车毕竟要先可以骑,才慢慢知道怎么做。 |
|