Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Spring не засетывает значение


Автор: Nesmishlenish 16.3.2008, 18:59
 Здравствуйте. Тут не с того не с сего нарисовалась проблемка: Переменная после засетавания становиться равной null. Но начнем по порядку:
Имею конфиг спринга :

    <bean name="/user" class="com.test.web.UserAction">
        <property name="userService">
            <ref bean="userServiceServer"/>
        </property>
    </bean>

Имею сам класс UserAction:


public class UserAction extends Action{

    private IUserService userService;
    
    public ActionForward execute(ActionMapping mapping,
                                ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response)
        throws Exception {
            request.getSession().setAttribute("users", userService.findAll());
            return mapping.findForward("success");
}

    public IUserService getUserService() {
        return userService;
    }

    public void setUserService(IUserService userService) {
        this.userService = userService;
    }
    
}

Имею настройку в struts-config.xml :

    <form-bean name="loginForm"
        type="com.sytechbel.web.LoginForm"/> 


    <action path="/user"
             type="com.sytechbel.web.UserAction"
             name="loginForm"
             input="/login-page.jsp" 
             scope="session" 
             validate="true">
            <forward name="success" path="/submit.jsp"/>
    </action>

Так же имеется JSP страница:
..............
<body>
    <html:form action="user.do">
        Login: <html:text property="login"></html:text><br>

        Password: <html:text property="password"></html:text><br>
        <html:submit/>
        
    </html:form>
    
</body>
..............


Так вот собственно вопрос:  При нажатии на кнопку Submit в классе UserAction (код смотри выше) вылетает NullPointerExeption на строчке  request.getSession().setAttribute("users", userService.findAll()); т.к. userService = null, как такое может быть если я его инициализирую в спринге? 
Помоги плз. подскажите где я облажался. Заранее благодарен.

Автор: brejnev 16.3.2008, 19:29
Читаем раздел "struts support" в spring-reference. 
Наследуем экшн от DispatchActionSupport. 
Код

public final class UserAction extends DispatchActionSupport{}


После этого ты можешь обращятся к контексту спринг и таскать из него обьекты.
Код

UserController userController = (UserController)getWebApplicationContext().getBean("user");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)