struts+spring

本文介绍了一个使用Struts框架与Spring框架集成的例子。通过示例展示了如何在Struts Action中注入Spring管理的Bean,并利用Spring进行DAO层对象的创建与管理,实现了登录验证的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Customer.java

 

package po;

 

public class Customer {

 

}

CustomerDao.java

 

package dao;

 

import po.Customer;

 

public class CustomerDao implements IDAO{

    public Customer getCusomerByAccount(String account){

       System.out.println("Dao作查询,账号是:" + account);

       return null;

    }

}

===================================================================

 

package dao;

 

import po.Customer;

 

public interface IDAO {

    public abstract Customer getCusomerByAccount(String account);

}

 

 

package prj23_1.action;

 

import javax.servlet.ServletContext;

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 org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

 

import prj23_1.form.LoginForm;

import dao.CustomerDao;

import dao.IDAO;

 

public class LoginAction extends Action {

 

       public ActionForward execute(ActionMapping mapping, ActionForm form,

                     HttpServletRequest request, HttpServletResponse response) {

              LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

              String account = loginForm.getAccount();

              String password = loginForm.getPassword();

              //在此调用Dao

              /*错误!ApplicationContext context = new FileSystemXmlApplicationContext("applicationContext.xml");*/

              ServletContext application = this.getServlet().getServletContext();

              WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(application);

              IDAO dao = (IDAO)wac.getBean("dao");

              dao.getCusomerByAccount(account);

              return new ActionForward("/login.jsp");

       }

}

 

 

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="dao" class="dao.CustomerDao"></bean>

 

</beans>

======================================================================

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">

  <!-- 让系统认识到Spring配置文件 -->

  <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>org.apache.struts.action.ActionServlet</servlet-class>

    <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>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 

 

=========================================================

 

这里可以看出:

创建对象由spring来完成。

Action中没有直接跟Dao打交道,只用到了接口。

对于有多个Dao很有好处。

这节与上一节完成的是同样的功能。但是任务比较单纯。

还可以更简单一些,将Action改为如下:

=============================================================

 

 

package prj23_1.action;

 

import javax.servlet.ServletContext;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import org.springframework.web.struts.ActionSupport;

 

import prj23_1.form.LoginForm;

import dao.IDAO;

 

public class LoginAction extends ActionSupport {

 

       public ActionForward execute(ActionMapping mapping, ActionForm form,

                     HttpServletRequest request, HttpServletResponse response) {

              LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

              String account = loginForm.getAccount();

              String password = loginForm.getPassword();

              //在此调用Dao

              WebApplicationContext wac = this.getWebApplicationContext();

              IDAO dao = (IDAO)wac.getBean("dao");

              dao.getCusomerByAccount(account);

             

              return new ActionForward("/login.jsp");

       }

}

 

其它的都保持不变就可以了。

 

 

 

 

IDAO dao = (IDAO)wac.getBean("dao");还是有入侵的代码。

解决方案下一节

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值