Spring和Struts整合---继承ActionSupport的方法

目的:联系使用Spring和Struts整合开发
时间:2009年8月8日下午
参考:javaeye和CSDN的博客文章
内容:Spring与struts整合主要有三种方式,通过Spring的ActionSupport类,通过Spring的DelegatingRequestProcessor类、
通过Spring的DelegatingActionProxy类。
第一中方式: 通过Spring的ActionSupport类。方法是Action不在继承Struts提供的Action,而是继承于Spring提供的
ActionSupport类。然后在Action中获得Spring的ApplicationContext。
这里以最简单的登录的程序的例子来演示,就是想让不了解的人也是给自己记录一下。
过程我就不说了,我使用MyEclipse+Tomcat6.0来开发的,主要演示一下各个部分的功能。

login.jsp的文件

<%@ page language="java" pageEncoding="gb2312"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>

<html>
<head>
<title>JSP for LoginForm form</title>
</head>
<body>
<html:form action="login.do" method="post">
username : <html:text property="username"/><html:errors property="username"/><br/>
password : <html:password property="password"/><html:errors property="password"/><br/>
<html:submit value="确定" property="submit"/>
<html:cancel value="取消" property="cancel"/><br>
</html:form>
</body>
</html>


successLogin.jsp的文件

<%@ page language="java" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'successLogin.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body><h1 align="center">Success To Login!!!<br></h1><div align="center">

</div></body>
</html>



loginFail.jsp的文件

<%@ page language="java" pageEncoding="gb2312"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'failLogin.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<h1 align="center">Fail To Login!!!<br></h1>
</body>
</html>

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>
<data-sources />
<form-beans >
<form-bean name="LoginForm" type="com.test.struts.form.LoginForm" />

</form-beans>

<global-exceptions />
<global-forwards>
<forward name="success" path="/successLogin.jsp"/>
<forward name="fail" path="/failLogin.jsp"/>
</global-forwards>
<action-mappings >
<action
attribute="LoginForm"
name="LoginForm"
path="/login"
scope="request"
type="com.test.struts.action.LoginAction" />

</action-mappings>

<message-resources parameter="com.test.struts.ApplicationResources" />


<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
</plug-in>
</struts-config>

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="loginServiceImpl" class="com.test.spring.impl.LoginServiceImpl"/>
</beans>

LoginAction.java

/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.test.struts.action;

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.struts.ActionSupport;

import com.test.spring.User;
import com.test.spring.impl.LoginServiceImpl;
import com.test.struts.form.LoginForm;

/**
* MyEclipse Struts
* Creation date: 08-08-2009
*
* XDoclet definition:
* @struts.action path="LoginAction" name="LoginFrom" input="/login.jsp" scope="request" validate="true"
*/
public class LoginAction extends ActionSupport {
/*
* Generated Methods
*/

/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

LoginServiceImpl lsi =(LoginServiceImpl)getWebApplicationContext().getBean("loginServiceImpl");

User user = new User();
user.setUsername(loginForm.getUsername());
user.setPassword(loginForm.getPassword());

if(lsi.checkUser(user)){
return mapping.findForward("success");
}
else
return mapping.findForward("fail");
}
}


LoginServiceImpl.java

package com.test.spring.impl;

import com.test.spring.LoginService;
import com.test.spring.User;

public class LoginServiceImpl implements LoginService {

public boolean checkUser(User user) {
// TODO Auto-generated method stub
boolean result = false;
String username = user.getUsername();
String password = user.getPassword();
if("admin".equals(username)&&"admin".equals(password)){
result = true;
}
else
result = false;
return result;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值