这里是一个Struts的入门实例,使用环境是MyEclipse 6.1和Tomcat 6.12(JDK1.5)。
为了简单起见,这里没有使用struts的标签库。但如果把这个例子弄懂了,以后使用标签库也是件不难的事情。而对配置文件,这里也用了很多的注释来说明,像我一样刚接触struts的读者,可以先跑动这个例子,然后再详细看看这些注释。
工程目录结构如下所示:
步骤如下:(1)新建工程struts1test;(2)在WebRoot下创建三个JSP文件register.jsp,success.jsp和fail.jsp;(3)右击Web-INF目录下lib文件夹,导入struts 库文件,本例子需要如下四个jar文件:commons-beanutils.jar、commons-digester.jar、commons-loggin.jar以及commons-struts.jar;(4)配置WEB-INF目录下的web.xml和struts-config.xml文件;(5)创建表单处理类RegisterForm.java和Action处理类RegisterAction.java
详细代码如下:
(1) register.jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Register 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">
</head>
<body>
请输入以下个人信息: <br>
<!-- <form action="register.do" name="uername" method="post" -->
<html:form action="register.do" method="post">
用 户名:<html:text property="uername"/><br/>
密 码: <html:password property="password1" /><br/>
密码确认:<html:password property="password2" /> <br/>
邮 箱: <html:text property="email" /> <br/>
<html:submit value="提交"/>
<html:reset value="重置"/>
</html:form>
</body>
</html>
(2)failure.jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Failure 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">
</head>
<body>
Sorry,Something error!! <br>
</body>
</html>
(3) success.jsp代码
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<!-- <jsp:useBean id="registerForm" class="com.struts1.register.RegisterForm" scope="request"/> -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Success 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">
</head>
<body>
Welcome to Sandy's World! <br>
<!-- <jsp:getProperty name="registerForm" property="uername" />s -->
用户名:<bean:write name="registerForm" property="uername"/><br>
密码:<bean:write name="registerForm" property="password1"/><br>
邮箱:<bean:write name="registerForm" property="email"/> <br>
<br>
</body>
</html>
(4)web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<!--servlet初始化参数,可以有多个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>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- 配置ActionServlet,将所有的*.do请求提交给action处理 -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--配置过滤器,防止乱码 -->
<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.struts1.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<!-- 设置要过滤的条件 -->
<url-pattern>*.do</url-pattern>
<!-- 让当前过滤器支持 <jsp:forward>操作
<dispatcher>FORWARD</dispatcher>-->
</filter-mapping>
<!-- 配置欢迎页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
(5)struts-config.xml配置文
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="registerForm" type="com.struts1.register.RegisterForm"></form-bean>
</form-beans>
<global-exceptions>
</global-exceptions>
<action-mappings>
<action path="/register" type="com.struts1.register.RegisterAction"
name="registerForm" scope="request">
<forward name="success" path="/success.jsp"></forward>
<forward name="fail" path="/fail.jsp"></forward>
</action>
</action-mappings>
</struts-config>
(6) RegisterForm.java代码
/**
* This class is used for ...
* @author Sandy
* @date Aug 6, 2012 1:41:14 PM
* @version V 1.0
*/
package com.struts1.register;
import org.apache.struts.action.ActionForm;
public class RegisterForm extends ActionForm{
/**
*
*/
private static final long serialVersionUID = 4392381660675967276L;
private String uername;
private String password1;
private String password2;
private String email;
public String getUername() {
return uername;
}
public void setUername(String uername) {
this.uername = uername;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getPassword1() {
return password1;
}
public void setPassword1(String password1) {
this.password1 = password1;
}
public String getPassword2() {
return password2;
}
public void setPassword2(String password2) {
this.password2 = password2;
}
}
(7)RegisterAction.java代码
/**
* This class is used for ...
* @author Sandy
* @date Aug 6, 2012 1:43:28 PM
* @version V 1.0
*/
package com.struts1.register;
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;
public class RegisterAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
RegisterForm registerForm=(RegisterForm)form;
String username= registerForm.getUername();
String password1= registerForm.getPassword1();
String password2= registerForm.getPassword2();
String email= registerForm.getEmail();
if((username!=null)&&(username!="")&&(password1!=null)&&(password1!="")
&&(password2!=null)&&(password2!="")
&&(email!=null)&&(email!="")){
if(password1.equals(password2)){
request.setAttribute("registerForm", registerForm);
return mapping.findForward("success");
}
}
return mapping.findForward("fail");
}
}