如何在Web工程項目中使用Struts

來源:互聯網
上載者:User
web|項目   起初的工程(未引入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=Submitbutton.cancel=Cancelbutton.confirm=Confirmbutton.reset=Resetbutton.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");
  }}
  
  測試結果:
  
  測試成功!

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。