起初的工程(未引入Struts)目录结构如下:
修改你的web.xml配置
如下:
修改之前是:
estservletaction.JDBCServletestservlet/estservletdelconadaction.delConadBeandelconad/delconad
加入:
action
org.apache.struts.action.ActionServlet
config
/WEB-INF/struts-config.xml
debug
2
detail
2
validate
true
2
标准Struts .do请求--action*.do
/WEB-INF/struts-bean.tld
/WEB-INF/struts-bean.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-html.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-logic.tld
/WEB-INF/struts-template.tld
/WEB-INF/struts-template.tld
/WEB-INF/struts-nested.tld
/WEB-INF/struts-nested.tld
/WEB-INF/struts-tiles.tld
/WEB-INF/struts-tiles.tld
引入Struts所需的标签库
引入目录结构如下:(配置文件描述)
在工程中引入Struts工程所需的.jar文件
目录结构如下:
引入资源文件:
ApplicationResources.properties
内容如下:
# -- buttons --button.submit=Submitbutton.cancel=Cancelbutton.confirm=Confirmbutton.reset=Resetbutton.save=Save
现在编写一个测试代码:
编写一个提交数据库的表单jsp文件useStruts.jsp:
如下:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
用户:
密码:
标题:
内容:
作者:
修改Struts-config.xml文件:
type="action.preUsestrutsAction">
type="action.ProcessUseStrutsAction"name="usestrutsForm"scope="request"input="/jsp/useStruts.jsp"validate="true">
创建两个Action:
preUsestrutsAction.java 、ProcessUseStrutsAction.java
preUsestrutsAction.java:
代码如下:
/* * $Header: d:/cvs/repository/struts-examples/Web\040Content/WEB-INF/src/java/examples/SuccessAction.java,v 1.2 2003/06/13 06:23:13 sraeburn Exp $ * $Revision: 1.2 $ * $Date: 2005/11/25 06:23:13 $ * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation.
For more * information on the Apache Software Foundation, please see * . * by huhpreal */package 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;
/** *
* @author huhpreal * @version $Revision: 1.2 $ $Date: 2003/06/13 06:23:13 $ */public class preUsestrutsAction extends Action {
// ------------------------------------------------------------Constructors
/**
* Constructor for SuccessAction.
*/
public preUsestrutsAction() {
super();
}
// ---------------------------------------------------------- Action Methods
/**
* @param mapping The ActionMapping used to select this instance
* @param form The optional ActionForm bean for this request (if any)
* @param request The HTTP request we are processing
* @param response The HTTP response we are creating
*
* @exception Exception if mapping.findForward throws an Exception
*
* @return the "success" ActionForward, or null if it cannot be found
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}}
ProcessUseStrutsAction.java:
代码如下:
/* * $Header: d:/cvs/repository/struts-examples/Web\040Content/WEB-INF/src/java/examples/dyna/ProcessDynaAction.java,v 1.3 2003/06/22 04:51:04 sraeburn Exp $ * $Revision: 1.3 $ * $Date: 2005/11/25 04:51:04 $ * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation.
For more * information on the Apache Software Foundation, please see * */package 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 org.apache.struts.action.DynaActionForm;
import bean.Linkdb;
/** * Retrieve and process data from the submitted form
* * @author huhpreal * @version $Revision: 1.3 $ $Date: 2005/11/25 04:51:04 $ */public class ProcessUseStrutsAction extends Action {
// ------------------------------------------------------------ Constructors
/**
* Constructor for ProcessOptionsAction.
*/
public ProcessUseStrutsAction() {
super();
}
/**
* @param mapping The ActionMapping used to select this instance
* @param form The optional ActionForm bean for this request (if any)
* @param request The HTTP request we are processing
* @param response The HTTP response we are creating
*
* @exception Exception if the application logic throws an exception
*
* @return the ActionForward for the next view
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
System.out.println("enter into ProcessUseStrutsAction");
if (isCancelled(request)) {
return mapping.findForward("home");
}
/**
* 获取表单信息
* 这里最好用Bean实体封装
* 时间关系就不提取
*/
String user=new String("");
String password=new String("");
String title=new String("");
String content=new String("");
String author=new String("");
user=(String) ((DynaActionForm) form).get("user");
password=(String) ((DynaActionForm) form).get("password");
title=(String) ((DynaActionForm) form).get("title");
content=(String) ((DynaActionForm) form).get("content");
author=(String) ((DynaActionForm) form).get("author");
/***
* 数据库操作
*/
Linkdb linkdb=new Linkdb();
String sqlstr="insert into conad (title,content,author) values('"+title+"','"+content+"','"+author+"')";
linkdb.executeUpdate(sqlstr);
// Forward to result page
return mapping.findForward("success");
}}
测试结果:
测试成功!