public class TopComponent extends Component{
@Autowired
private UserService userSerivce;
public TopComponent(ValueStack stack) {
super(stack);
}
public boolean start(Writer writer) {
           在这里面 如何拿到 spring注入的对象 例如StoreService storeService = (StoreService)getWebApplicationContext().getBean("storeService");
 当然这么写行不通, 请问是哪种写法呢?         }
 

解决方案 »

  1.   

    添加userSerivce set方法 public void setUserSerivce(UserService userSerivce) {
    this.userSerivce = userSerivce;
    }
      

  2.   

    WebApplicationContext  wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this .getServletContext());StoreService storeService = (StoreService) wac .getBean("storeService"); 
      

  3.   

            举个例子  你需要这么装置  BEAN    <bean id="loginService"              class="com.test.service.impl.LoginServiceImpl"></bean><bean id="loginAction" class="com.test.action.LoginAction" scope="prototype">
    <property name="loginService">
    <ref local="loginService"/>
    </property>
    </bean>
      

  4.   

    WebApplicationContext  wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());StoreService storeService = (StoreService) wac .getBean("storeService"); 我这个是自定义标签类 拿不到this.getServletContext()!!!!!!
      

  5.   

    给你个事例吧.
    在applicationContext.xml里<!-- 配置Service -->
    <bean id="PersonService"
    class="com.njy.serviceImpl.PersonServiceImpl" scope="prototype">
    </bean>
    <!-- 配置Action -->

    <bean id="personAction" class="com.njy.action.PersonAction"
    scope="prototype">
    <property name="personService">
    <ref bean="PersonService" />
    </property>
    </bean>然后在struts.xml里,注意是action的class那里配置注入的对象<package name="PersonAction" extends="struts-default">
    <action name="person_*" method="{1}" class="personAction">
    <result name="toShowList" type="redirect">person_getAll.action</result>
    <result name="toList">/list.jsp</result>
    <result name="toEdit">/edit.jsp</result>
    </action>
    </package>
    如果你拿到属性的话就在action里加上该属性,再设get/set方法。不用在spring里注入的.
      

  6.   

    通过request获得嘛,看看你写的标签
      

  7.   

    我现在 storeService是 有注释的 也生成了setter/getter  但是在 
    public boolean start(Writer writer) { 方法里 拿到的storeService就是null 怎么办啊?
      

  8.   

    WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
    UserService userService = (UserService)wac.getBean("userService");
    这样OK了 结贴!
      

  9.   

    WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
    UserService userService = (UserService)wac.getBean("userService");
    这样OK了 结贴!