6 回答

TA贡献1875条经验 获得超3个赞
@Controller public class LoginController{ @Resource(name="loginService") private IService loginService; @RequestMapping("/login") @Autowired public ModelAndView index(BaseClassDo logindo){ LoginDo ll= (LoginDo) logindo; ModelAndView mv = new ModelAndView(); System.out.println(logindo); // mv = loginService.doService(logindo); mv.setViewName("login"); return mv; } }
楼上说的对,你这方法上的@Autowired是想要做什么?和@RequestMapping一起用?
如果想通过方法注入的话,那新创建一个方法然后用上@Autowired注入就行了,至于@RequestMapping是用于处理请求的

TA贡献1794条经验 获得超8个赞
指的是根据请求的参数绑定为相应的实体类型吗?只不过这些实体类型都继承自BaseClassDo 是吗?比如前端传job_id、worker_id、login_pw、worker_name这四个参数,这个时候在index方法的参数实际类型就是LoginDo了?然后如果前端传其他参数,那就会绑定到另一个BaseClassDo的具有这些参数对应字段的子类,是这个意思不?

TA贡献1841条经验 获得超3个赞
通过页面请求发现代码真正逻辑是页面请求了一个子类Action的方法,而这个方法里面调用了父类的一个方法,此时父类里面的Service一直无法注入,对于上面所提的这种需求,实际上是需要在子类做Spring注入的同时也进行父类的Spring注入,那么这种需要这样的配置:
<bean id="barePhoneAction" class="com.eshore.crm.contrl.termmgr.mgr.action.BarePhoneAction" scope="prototype" parent="termCommonAction"> <property name="orderVerifyApiFacade" ref="ord.bizprov.orderVerifyApiFacade"/> <property name="orderListQryApiFacade" ref="ord.query.orderListQryApiFacade"/> <property name="channelQryApiFacade" ref="cfguse.channel.channelQryApiFacade" /> </bean>
经过上面的设置以后,请求子类的Action方法,子类方法中调用父类方法时,就不会出现父类不发生注入的问题了。

TA贡献1824条经验 获得超6个赞
@Autowired的使用上有问题。
一般情况下,@Autowired标注在方法上的时候,会在容器初始化时去调用方法“进行赋值”,但也仅此而已了,之后的操作和@Autowired就没关系了
正常的前后端请求传递的参数是由前端传入的,并不是容器注入的
添加回答
举报