服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 专题栏目 > STRUTS专题 > 查看文档

在Web工程项目中使用Struts

起初的工程(未引入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");
    }

}



测试结果:

测试成功!

可以借鉴一下!成功!(参考附件)

扫描关注微信公众号