0
我有maven struts2 spring hibernate集成項目。我導入到eclipse並正確運行。但是,當我通過向該項目添加預定義的依賴關係來逐步重新配置該項目時。它無法從應用程序上下文文件中獲取Spring bean對象。 所以它拋出空指針異常。那麼如何配置獲取彈簧對象。如何配置應用上下文來獲取struts2中的spring bean
我有maven struts2 spring hibernate集成項目。我導入到eclipse並正確運行。但是,當我通過向該項目添加預定義的依賴關係來逐步重新配置該項目時。它無法從應用程序上下文文件中獲取Spring bean對象。 所以它拋出空指針異常。那麼如何配置獲取彈簧對象。如何配置應用上下文來獲取struts2中的spring bean
注意:不要foget在web.xml
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
替代1添加監聽器:使用Spring的WebApplicationContext
在你的行動中執行方法
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
Public class yourAction extends ActionSupport{
public String execute() throws Exception {
WebApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());
UserBo userBo1 = (UserBo)context.getBean("userBo");
}
}
方案2:您可以在applicationContext.xml
<bean id="userBo" class="yourPackageName.UserBoImpl" />
<bean id="userSpringAction" class="yourPackageName.UserSpringAction">
<property name="userBo" ref="userBo" />
</bean>
在
struts.xml
//struts.xml
<action name="userSpringAction" class="userSpringAction" >
<result name="success">pages/user.jsp</result>
</action>
在你的行動
public class yourAction extends ActionSupport{
//DI via Spring
UserBo userBo;
}
方案3:您可以使用Struts天真依賴注入
第1步:在你struts.xml
<struts>
<bean class="yourPackageName.UserBoImpl" name="userBo" />
<package name="mydefault" namespace="/" extends="struts-default">
....
</package>
</struts>
第2步:在你的行動
Public class yourAction extends ActionSupport{
// struts DI
@Inject("userBo")
private UserBO userBO;
}
顯示我們項目結構你如何定義的。 –
添加更多詳情。 –