Struts学习总结(一个简单的struts实例)

来源:互联网 发布:php上传文件大小是多少 编辑:程序博客网 时间:2024/05/17 04:43

由于后面的一些配置很大一部分都要用到struts的东西(或者思想),所以在这里对struts的配置进行一个比较详细的解释。

一.  按惯例,先讲包的引入:

就是下载的jakarta-struts里面lib下的包,这是使用struts框架的根本需要,也就是框架的支持。

二.紧接着就是配置文件(这也是最重要的一步,关系到程序能不能跑起来)。

由于是做的web project 所以一般的web项目的配置文件web.xml是必需的,WEB-INF, WEB-INF/classes, WEB-INF/lib.也是必需的。如果用到struts的标签的话(在struts框架上推荐使用),还要有一个WEB-INF/tlds

里面用来放jakarta-struts里的tld文件。

然后就是struts的配置文件struts-config.xml。这是使用这个框架的根本。

这两个配置文件的示例如下:

 

    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>

       <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>3</param-value>

              </init-param>

              <init-param>

                     <param-name>detail</param-name>

                     <param-value>3</param-value>

              </init-param>

              <load-on-startup>0</load-on-startup>

       </servlet>

       <servlet-mapping>

              <servlet-name>action</servlet-name>

              <url-pattern>*.do</url-pattern>

       </servlet-mapping>

       <taglib>

<taglib-uri>http://jakarta.apache.org/struts/tags-bean</taglib-uri>

<taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location>

       </taglib>

       <taglib>

<taglib-uri>http://jakarta.apache.org/struts/tags-html</taglib-uri>

<taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location>

       </taglib>

       <taglib>

<taglib-uri>http://jakarta.apache.org/struts/tags-logic</taglib-uri>

<taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location>

       </taglib>

</web-app>

 

 

 

 

 

Struts-config.xml:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

   <data-sources />

   <form-beans >

      <form-bean name="helloForm" type="com.ln.struts.form.HelloForm" />

   </form-beans>

   <global-exceptions />

   <global-forwards />

   <action-mappings >

      <action

         attribute="helloForm"

         name="helloForm"

         path="/hello"

         scope="request"

         type="com.ln.struts.action.HelloAction">

         <forward name="hello" path="/hello.jsp" />

      </action>

   </action-mappings>

   <message-resources parameter="com.ln.struts.ApplicationResources" />

</struts-config>

 

 

三.关于程序的书写:(以最出名的Hello World为例)

一般需要有一个form与一个action,还有jsp页面。Form用于与页面进行数据交互,然后由action通过form取得页面数据,进行相应的处理,然后通过调用return finforward进行页面转移控制。

 

示例如下:

HelloAction.java:

 

//Created by MyEclipse Struts

// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.3/xslt/JavaClass.xsl

 

package com.ln.struts.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 com.ln.struts.form.HelloForm;

 

/**

 * MyEclipse Struts

 * Creation date: 01-14-2005

 *

 * XDoclet definition:

 * @struts:action path="/hello" name="helloForm" scope="request" validate="true"

 * @struts:action-forward name="hello" path="/hello.jsp"

 */

public class HelloAction extends Action {

 

    // --------------------------------------------------------- Instance Variables

 

    // --------------------------------------------------------- Methods

 

    /**

     * Method execute

     * @param mapping

     * @param form

     * @param request

     * @param response

     * @return ActionForward

     */

    public ActionForward execute(

        ActionMapping mapping,

        ActionForm form,

        HttpServletRequest request,

        HttpServletResponse response) {

        HelloForm helloForm = (HelloForm) form;

        helloForm.setMsg("Hello World!");

        request.setAttribute("helloForm",helloForm);

        return mapping.findForward("hello");

    }

 

}

 

HelloForm.java:

 

//Created by MyEclipse Struts

// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_3.8.3/xslt/JavaClass.xsl

 

package com.ln.struts.form;

 

import org.apache.struts.action.ActionForm;

 

/**

 * MyEclipse Struts

 * Creation date: 01-14-2005

 *

 * XDoclet definition:

 * @struts:form name="helloForm"

 */

public class HelloForm extends ActionForm {

 

    // --------------------------------------------------------- Instance Variables

 

    /** msg property */

    private String msg;

 

    // --------------------------------------------------------- Methods

 

 

    /**

     * Returns the msg.

     * @return String

     */

    public String getMsg() {

        return msg;

    }

    /**

     * Set the msg.

     * @param msg The msg to set

     */

    public void setMsg(String msg) {

        this.msg = msg;

    }

}

 

 

hello.jsp

 

 

<%@ page language="java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

   

    <title>hello.jsp</title>

  </head>

 

  <body>

    <html:form action="/hello" method="post">

               <bean:write name="helloForm" property="msg"/>

    </html:form>

  </body>

</html:html>

 

 

index.jsp:

 

 

<%@ page language="java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html:html>

  <head>

    <title>index.jsp</title>

  </head>

  <body>

    This a struts page. <br>

    <logic:redirect page="/hello.do"></logic:redirect>

  </body>

</html:html>

原创粉丝点击