struts和spring包都是直接添加MyEclipse 5.0 自带的,只在struts下测试成功
刚接触spring,对applicationContext.xml的bean的配置还不熟悉,下面的是测试代码:-----------
applicationContext.xml
------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TestDb;</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>aa</value>
</property>
</bean>

<bean name="/login" class="cn.com.jac.dmps.user.action.LoginAction"
singleton="false">
<property name="user">
<ref bean="userBo" />
</property>
</bean>

<bean id="userDao" class="cn.com.jac.dmps.user.dao.UserDAO">
<property name="jt">
<ref bean="dataSource" />
</property>
</bean>

<bean id="userBo" class="cn.com.jac.dmps.user.bo.UserBO">
<property name="dao">
<ref bean="userDao" />
</property>
</bean>
</beans>
--------------------------
struts-config.xml
-----------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
  <datasources>
  </datasources>
  <form-beans >
    <form-bean name="loginForm" type="cn.com.jac.dmps.user.form.LoginForm" />
  </form-beans>  <global-exceptions />
  <global-forwards />
  <action-mappings >
    <action
      attribute="loginForm"
      input="/page/login.jsp"
      name="loginForm"
      path="/login"
      scope="request"
      validate="true"
      type="org.springframework.web.struts.DelegatingActionProxy">
      <forward name="success" path="/index" />
    </action>  </action-mappings>  <message-resources parameter="cn.com.jac.dmps.res.ApplicationResources_zh_CN" />  
</struts-config>

解决方案 »

  1.   

    -------------------
    web.xml
    --------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <welcome-file-list>
    <welcome-file>/page/login.jsp</welcome-file>
    </welcome-file-list>
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>
    org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet> <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>
    cn.com.jac.dmps.action.JacDmpsActionServlet
    </servlet-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
    </init-param>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>3</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    </web-app>
      

  2.   

    --------------------------
    LoginAction.java:
    ---------------------------
    package cn.com.jac.dmps.user.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionMessage;import cn.com.jac.dmps.user.bo.UserBO;
    import cn.com.jac.dmps.user.form.LoginForm;public class LoginAction extends Action {    UserBO user;

        public void setUser(UserBO user) {
    this.user = user;
        }

        public ActionForward execute(ActionMapping mapping, ctionForm form, HttpServletRequest request, HttpServletResponse response) {
           LoginForm loginForm = (LoginForm) form;
           String username = loginForm.getUsername();
           String password = loginForm.getPassword();
           ActionErrors errors = new ActionErrors();

           user.setUsername(username);
           user.queryByUsername(username);
           System.out.println(user.getPassword());
           return new ActionForward(mapping.getInput());
       }
    }------------------------
    UserBO.java
    -------------------------package cn.com.jac.dmps.user.bo;import cn.com.jac.dmps.user.dao.UserDAO;public class UserBO implements IUserBO {
    private int id;
    private String username;
    private String password;
    private UserDAO dao;

    public void setDao(UserDAO dao) {
    this.dao = dao;
    } public int getId() {
    return id;
    }

    public String getUsername() {
    return username;
    }

    public void setUsername(String username) {
    this.username = username;


    public String getPassword() {
    return password;
    }

    public void setPassword(String password) {
    this.password = password;
    }

    public UserBO queryByUsername(String username) {
    return dao.queryByUsername(username);
    }
    }
      

  3.   

    在创建userDao的时候出现了错误
      

  4.   

    userDao只有一个datasource字段,应该是datasource的问题
      

  5.   

    数据源的定义是继承自Spring的JdbcDaoSupport,用jdbcTemplate进行数据库操作
    userDao还需要其他属性吗?
    我的思路是通过loginForm输入的username传给UserBO,然后调用UserDAO中的queryByUsername(String username) 返回的UserBO对象
    user和dao对象都由spring自动创建
    按这样的顺序LoginAction<->UserBO<->UserDAO
      

  6.   

    struts-config.xml
    中缺少配置
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
            <set-property property="contextConfigLocation"
                value="/WEB-INF/applicationContext.xml,
                       /WEB-INF/action-servlet.xml"/>
        </plug-in>
      

  7.   

    是/WEB-INF/applicationContext.xml还是="/WEB-INF/classes/applicationContext.xml,看清楚啊!!
      

  8.   

    struts-config.xml 
    中缺少配置 
    <controller>
       <set-property property="processerClass" 
       value="org.springframework.web.struts.DelegatingRequestProcessor"/>
      </controller>