起初的工程(未引入Struts)目录结构如下:
修改你的web.xml配置 如下: 修改之前是:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <!-- The mapping for the default servlet --> <servlet> <servlet-name>estservlet</servlet-name> <servlet-class>action.JDBCServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>estservlet</servlet-name> <url-pattern>/estservlet</url-pattern> </servlet-mapping>
<servlet> <servlet-name>delconad</servlet-name> <servlet-class>action.delConadBean</servlet-class> </servlet> <servlet-mapping> <servlet-name>delconad</servlet-name> <url-pattern>/delconad</url-pattern> </servlet-mapping> </web-app>
加入:
<!-- import Struts MVC framework--> <!-- Standard Action Servlet Configuration 标准Struts Action 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>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>validate</param-name> <param-value>true</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <!-- Standard Action Servlet Mapping 标准Struts .do请求--> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!--Struts Tag Library Descriptors Struts 标签--> <taglib> <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri> <taglib-location>/WEB-INF/struts-template.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri> <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri> <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> </taglib>
引入Struts所需的标签库
引入目录结构如下:(配置文件描述)
在工程中引入Struts工程所需的.jar文件 目录结构如下:
引入资源文件: ApplicationResources.properties 内容如下:
# -- buttons -- button.submit=Submit button.cancel=Cancel button.confirm=Confirm button.reset=Reset button.save=Save
现在编写一个测试代码: 编写一个提交数据库的表单jsp文件useStruts.jsp: 如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ page language="java" contentType="text/html; charset=utf-8" %> <%@ taglib url="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib url="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html xhtml="true" locale="true"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>使用 Struts DynaActionForm 插入Mysql数据库</title> <html:base/> <link rel="stylesheet" type="text/css" href="../css/example.css" /> </head> <body> <html:errors/> <html:form action="/insertmysql.do"> <p>用户:<br/> <html:text property="user" size="40" maxlength="20"/></p> <p>密码:<br/> <html:text property="password" size="40" maxlength="20"/></p> <p>标题:<br/> <html:text property="title" size="40" maxlength="50"/></p> <p>内容:<br/> <html:text property="content" size="40" maxlength="50"/></p> <p>作者:<br/> <html:text property="author" size="40" maxlength="50"/></p> </html:form> </body> </html:html> 修改Struts-config.xml文件: <form-beans> <!-- DynaActionForm Bean for usesturts --> <form-bean name="usestrutsForm" type="org.apache.struts.action.DynaActionForm"> <form-property name="user" type="java.lang.String" /> <form-property name="password" type="java.lang.String" /> <form-property name="title" type="java.lang.String" /> <form-property name="content" type=" java.lang.String " /> <form-property name="author" type="java.lang.String" /> </form-bean> </form-beans> <!-- ========== Action Mapping Definitions ============================= --> <action-mappings>
<!-- usersturts ActionForm ===================================== -->
<action path="/prepareUsestruts" type="action.preUsestrutsAction"> <forward name="success" path="/jsp/useStruts.jsp"/> </action>
<action path="/processUsestruts" type="action.ProcessUseStrutsAction" name="usestrutsForm" scope="request" input="/jsp/useStruts.jsp" validate="true"> <forward name="success" path="/jsp/useStruts.jsp"/> </action> </action-mappings>
创建两个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 * <http://www.apache.org/>. * 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"); }
}
测试结果:
测试成功!
可以借鉴一下!成功!(参考附件)
|