您的位置:澳门新葡8455最新网站 > 编程教学 > Struts2起始框架的搭建,Struts2应用的开发流程

Struts2起始框架的搭建,Struts2应用的开发流程

发布时间:2019-10-08 10:30编辑:编程教学浏览(187)

    struts1是阿帕奇公司费用的耦合性极高xwork是OpenSystem。后来阿帕奇买了xwork。成就了struts2(struts2并非struts1的提高版)

    新建多个web项目 大家命名叫week3

    Struts2用到的开支流程,struts2使用流程

    Struts2的付出流程

    为了能够在eclipse中采取Struts2在举办开辟时,须要依照须求导入一些关于的jar包;

    在官方网站下载相关的压缩包,这里下载了八个:struts-2.3.30-all.zip和struts-2.3.30-docs.zip,解压到同二个文件夹中。

    在eclipse中新建了新的Dymamic Web Project现在,为该项目增加Struts2帮衬:

    1.复制Struts2解压目录下struts2-blank.war解压后WEB-INFlib目录下的具备jar包到web项目中的WebContentWEB-INFlib下;

    2.把那么些复制的jar包导入项目中去。

    初步利用Struts2开采:

    1.在web.xml中定义拦截器拦截客户央求:

      假如eclipse中生成的Dynamic Web Project中未有自动生成web.xml文件,能够从Tomcat相关的文件夹中找到叁个私下认可的web.xml文件,把此文件复制到项目标WEB-INF目录下(不是WEB-INFlib下)。

      也能够在struts2-blank.war解压后目录的WEB-INF下直接复制二个web.xml。

      修改此web.xml文件,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
        <!-- 定义核心拦截器 -->
    
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <!-- 使核心拦截器拦截所有的请求 -->
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    </web-app>
    

    2.定义包括表单数据的JSP页面:

      写多个交付央求的JSP页面,此JSP页面将会将央求提交给有关的Action类来管理。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
    <s:form action="test_1">
        <s:textfield name="username" key="username"/>
        <s:submit key="login" value="login"/>
    </s:form>
    </body>
    </html>
    

    3.概念管理客商央求的Action类:

      写一个与上述JSP关联的Action类来拍卖该JSP提交的哀告。在eclipse中央市直机关接放在在src目录下就能够

    package testAction;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    public class Test_1Action extends ActionSupport{
        //定义封装请求参数的成员变量
        private String username;
        //setter、getter方法
        public void setUsername(String username){
            this.username = username;
        }
        public String getUsername(){
            return this.username;
        }
        //定义处理请求的execute方法
        public String execute()throws Exception{
            if(getUsername()!=null){
                return SUCCESS;
            }else{
                return ERROR;
            }
        }
    }
    

    4.编写制定物理视图财富文件:

      为了简单,我们把物理视图能源文件一贯放在项指标webContent目录下

      error.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>error page</title>
    </head>
    <body>
        错误页面!username为空!
    </body>
    </html>
    

      welcome.jsp:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib prefix="s" uri="/struts-tags"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>welcome page</title>
    </head>
    <body>
        登陆成功!
    </body>
    </html>
    

    5.布署管理客商诉求的Action类并配置Action的管理结果和物理视图财富的映射关系::

      使得JSP页面包车型客车央浼能够标准找到与此JSP页面相关的Action类。

      配置Action需求在项目标src目录下加多struts.xml文件,此文件的暗中认可文件也得以在struts2-blank.war解压后目录的WEB-INFclasses下找到,把其修改为如下内容:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    
    <struts>
    
        <constant name="struts.enable.DynamicMethodInvocation" value="false" />
        <constant name="struts.devMode" value="true" />
    
        <package name="test" extends="struts-default">
            <!-- 
                定义了名为test_1的Action;
                处理请求的Action类为testAction.Test_1Action.java
             -->
            <action name="test_1" class="testAction.Test_1Action">
                <!-- 定义逻辑视图与物理视图之间的映射关系 -->
                <result name="error">error.jsp</result>
                <result name="success">welcome.jsp</result>
            </action>
        </package>
    </struts>
    

     

     

     

    Struts2的开支流程 为了能够在eclipse中应用Struts2在扩充支付时,要求依照须要导入一些有关的jar包;...

    1. 赢得发表包 struts2官方网址 apache github 百度

    在这里本身使用的是上面那个揭橥包struts2-2.3.24.1 以往有机会能够钻探:bootstrap

    1. 导入jar包.切记无法导入lib包下的具有包(前面用maven自动导包)。它包非常多里头非常多包都以有抵触的。*大家供给导入的包能够参考一下目录的具备包导进去。struts-2.3.24.1appsstruts2-blankWEB-INFlib**
    1. 安排web.xml(在那上面truts-2.3.24.1appsstruts2-blankWEB-INF有二个web.xml作为参照) 在此间过滤任何以.action结尾的都会被struts2阻挠。

       <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
      
    2. 配置struts第22中学坚配置文件 struts.xml (这里有参照struts-2.3.24.1appsstruts2-blankstruts2-blankWEB-INFsrcjava) 放在src目录下。也足以献身别的岗位要求针对一下。(倘使这里有警示,正是dtd难点)

       <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"> </package> <!-- <include file="example.xml"/> --> </struts>
      
      • struts-2.3.24.1appsstruts2-blankstruts2-blankWEB-INFlibstruts2-core-2.3.24.1.jar 这里有dtd,文件。找到呼应版本的dtd.这里运用的是struts-2.3.dtd在展按键联。关联方法和hibernate框架关联dtd文件一律,在window的率先项中xml catalog中。
    1. 编写Action(假若大家未来有二个bean类为user。此时大家得以编写制定三个UserAction)。而且写供给的对应措施须求三个再次回到值。如:

       public String toRegister() { System.out.println("跳转到注册页面"); return "register"; }
      
    2. 配置struts.xml

    在package标签中,大家在安顿贰个action。个中有如下属性。这里我们付出代码例子:

     <package name="default" namespace="/" extends="struts-default"> <action name="/user_*" method="{1}"> <result name="register">/WEB-INF/jsp/register.jsp</result> </action> </package>
    

    假若我们将来访谈

    执行流程:http://localhost:8888/week3/user_toRegister.action request url:/user_toRegister.action .action | struts2 请求: /user_toRegister 匹配:struts.xml <package name="" namespace="/"> <action name="user_*" method="{1}"> <result name="register">/register.jsp</result> </action> </package> class.forName .newInstance() .toRegister(); return "register"
    

    本文由澳门新葡8455最新网站发布于编程教学,转载请注明出处:Struts2起始框架的搭建,Struts2应用的开发流程

    关键词: