<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource">
</property>
<property name="mappingResources">
<list>
<value>com/ljj/regit/newmodel/Blogadmin.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9iDialect
</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:mldn">
</property>
<property name="username" value="scott"></property>
<property name="password" value="tiger"></property>
</bean>
<bean id="hibernatedao" class="com.ljj.regit.dao.impl.hibernateimpl"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default" p:sessionFactory-ref="sessionFactory">这边开始注入类</bean>
<bean name="/login" class="com.yourcompany.struts.action.LoginAction"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="hibernatedao" ref="hibernatedao"></property>
</bean>这边有问题吗??
</beans>这边是loginAction:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.yourcompany.struts.action;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;import com.ljj.regit.dao.hibernatedao;
import com.ljj.regit.dao.outpl;
import com.ljj.regit.dao.impl.hibernateimpl;
import com.ljj.regit.newmodel.Blogadmin;
import com.yourcompany.struts.form.LoginForm;/** 
* MyEclipse Struts
* Creation date: 04-01-2010

* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends Action {private hibernatedao hibernatedao;
public void setHibernatedao(hibernatedao hibernatedao) {
this.hibernatedao = hibernatedao;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
//hibernateimpl hibernateimpl=new hibernateimpl();
outpl o=new outpl();
o.ou();
Blogadmin ad=new Blogadmin();
System.out.println(loginForm.getPassword());
ad.setPassword(loginForm.getPassword());
ad.setUsername(loginForm.getUsername());
System.out.print(hibernatedao);打印注入进来的类,结果是空的 return null;
}
}
这边是hibernatedao :
package com.ljj.regit.dao;import com.ljj.regit.newmodel.Blogadmin;public interface hibernatedao {
public void out(Blogadmin ad);
}
这边是实现类:
package com.ljj.regit.dao.impl;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.ljj.regit.dao.hibernatedao;
import com.ljj.regit.newmodel.Blogadmin;public class hibernateimpl extends HibernateDaoSupport implements hibernatedao {public void out(Blogadmin ad) {
System.out.print("---------------------------");
//getHibernateTemplate().saveOrUpdate(ad);
}}
 
 
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config>
<form-beans >
<form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" /></form-beans><global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction"
cancellable="true" /></action-mappings>

解决方案 »

  1.   

    <bean id="hibernatedao" class="com.ljj.regit.dao.impl.hibernateimpl"
    abstract="false" lazy-init="default" autowire="default"
    dependency-check="default" p:sessionFactory-ref="sessionFactory">这边开始注入类</bean>
    我没见过这样写的,p:sessionFactory-ref="sessionFactory"
    不知道对不对,你改成和下面的Action注入DAO一样的形式试试. abstract lazy-init这些不用设置的,一堆看了更复杂
      

  2.   

    p:sessionFactory-ref="sessionFactory"改为:<property name="sessionFactory" >
      ref="sessionFactory"
    </property>去掉:abstract="false" lazy-init="default" autowire="default" dependency-check="default"
      

  3.   

    前辈,我这样写是IDE自己生成的,而且我以前也有这样写过,那次就可以,但现在不知道为什么注不进去
    ,已经一天了~~~~真的没有办法吗???
      

  4.   

    java.lang.NullPointerException
    at com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:43)
    at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
    at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    这个错误看了一天了,没法解决~~~
      

  5.   

    action的43行在哪?才有14行啊....
      

  6.   

    action里面的type="org.springframework.web.struts.DelegatingActionProxy"
    action交由spring实例化
      

  7.   

    7楼正解,然后再在spring注入struts
      

  8.   

    <action
    attribute="loginForm"
    input="/login.jsp"
    name="loginForm"
    path="/login"
    scope="request"
    type="com.yourcompany.struts.action.LoginAction"
    cancellable="true" />
    type改成 org.springframework.web.struts.DelegatingActionProxy应该就OK了
      

  9.   

    还需要在struts-config.xml中配置插件吧
      

  10.   

    谢谢各位前辈~~~~已经可以了,没有将STRUTS由spring注入~~~