• Struts2.X——搭建


    今天是我第一次用博客,虽然还有好多的不懂,但是我还是会努力的把自己学到的写下来,分享给大家;

    一,SSH框架中的struts2的搭建流程

    1.在搭建struts2之前,我们首先要有struts2的jar包,在这里我介绍大家去http://www.apache.org/官网下载,

    之后放到lib目录下,我下载的是struts-2.3.30版本,以后在使用struts2.x时要注意版本;

    2.当然struts2的jar包有好多可能你在开发中用不上,我在这里就只列出必须要有的;

    3.在导完包后,我们就要把它与java项目连接起来,去到项目的WEB-INF下有个web.xml,struts2的入口点是一个过滤器,

    因此,sturts2要按过滤器的方式配置。如果没有那就是你在创建项目的最后一页忘了勾上选项,可以如下配置web.xml;

    首先在xml文件里配置信息头,注意根据你版本填写;

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    	id="WebApp_ID" version="3.1">

    然后,再以过滤器的形式配置引入struts2jar包,注意在后面的版本变成两个过滤器啦;

        <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>
    

    4.配置好web.xml文件后,我们就要编写一个用于替代servlet的Action类,注意Action是个特殊类,要继承ActionSupport类;

    ActionSupport类不但实现了Action的接口,还实现了验证和国际化相关的接口;

     1 import com.opensymphony.xwork2.ActionSupport;
     2 
     3 public class IndexAction extends ActionSupport {
     4     // 模拟IndexServlet的doGet方法
     5     // 跟Servlet最大的差异:没了request,也没了response
     6     public String execute1() {
     7 
     8         // return
     9         // "success"取代request.getRequestDispatcher("index.jsp").forward(request,
    10         // response);
    11         return "success";
    12     }
    13 }

    5.编写完Action类后,我们要配置struts.xml文件,struts2中最核心的是Action,而Action的核心就是struts.xml,struts.xml集中了所有页面的导航定义。

    掌握struts.xml是掌握struts2项目的关键所在,struts.xml的配置如下;

    <?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">
    <!-- 上面的头,注意版本,从样例里复制过来 showcase.warWEB-INFsrcjavastruts.xml -->
    
    <struts>
        <!-- 第1步:先定义一个包 -->
        <package name="mypck001" extends="struts-default">
            <!-- 第2步:定义一个action,配置跳转信息 name 类似于Servlet @WebServlet("/IndexServlet") 
                http://xxxx/xxx/Index.action http://xxxx/xxx/Index class 对应于自己写的Action类 当不写method属性时,默认调用的是execute -->
            <action name="Index" class="ssh.action.IndexAction" method="execute1">
                <!--
                 跳转是forward
                 /WEB-INF/是防止jsp不经过action就可以访问
                  -->
                <result name="success">/WEB-INF/jsp/index2.jsp</result>
                <result name="error">/WEB-INF/jsp/s_tag.jsp</result>
            </action>
        </package>
    </struts>

    注意:Action的name一定要写成代码里显示的形式,没必要后面加“.do”或“.action”这样的后缀形式;<result/>之间定义的JSP页面要把全路径写出来。

    6.经过这几步后,启动你的服务器,在地址栏输入登录界面的地址,一个简单的struts2框架就搭建好了……

    在struts.xml中,是采用package来管理各种action的。

    package标签中的namespace指定了该包的命名空间。

    extends是说当前这个包继承自struts-default包,可以在struts2-core-2.2.3.1.jar中的struts-default.xml文件中找到这个包,这个包被定义成抽象的,它不能包含有action。

    包中的每一个action标签都和一个逻辑处理类进行了映射,name指定了这个action的名字,和包的namespace组合起来,可以直接访问这个逻辑处理类。

    class指定了逻辑处理类的位置,method指定了进行逻辑处理类中进行逻辑处理的方法,这个execute很重要,而且它有固定的返回类型,就是String。

    result标签就是根据逻辑判断之后,execute方法返回的字符串,根据返回的字符串,来进入到指定的页面。这里一定要把跳转的地址写清楚,明白。否则浏览器会报404的错误

      

      

  • 相关阅读:
    Microsoft Artificial Intelligence Conference(2018.05.21)
    Insider Dev Tour(2018.06.28)
    AWS re:Invent(2019.01.09)
    OPPO Developers Conference(2018.12.26)
    Tencent Cloud Developers Conference(2018.12.15)
    China Intelligent Office Summit(2018.11.21)
    International Programming Retreat Day(2018.11.17)
    Intel Artificial Intelligence Conference(2018.11.14)
    OSC Source Code Innovation Salon(2018.10.20)
    Java CAS 比较并且更换值
  • 原文地址:https://www.cnblogs.com/huangjinwen/p/5842718.html
Copyright © 2020-2023  润新知