当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

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


  起初的工程(未引入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
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"><%@ 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" %>

用户:

密码:

标题:

内容:

作者:

修改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");
  }}
  
  测试结果:
  
  测试成功!
相关内容
赞助商链接