美文网首页Struts2
struts2配置标签以及实现自己第一个hello

struts2配置标签以及实现自己第一个hello

作者: 小漫画ing | 来源:发表于2018-05-14 20:49 被阅读0次

    一、配置标签

    • 介绍在配置文件中主要有三个标签package、action、result以及标签中的属性。

    标签package

    • 类似于代码包,区别不同的action,必须首先写package标签,在package里面才能配置action。
    package中的属性:

    (1)、name属性:

    • name属性的值和功能本身没有关系,再一个配置文件可以写很多个name,但是不能重复,也不能写中文,在一个配置文件中package可以有多个,name属性值不能相同。
      (2)、extends属性:
    extends="struts-default"
    
    • 属性值是固定的,固定值叫struts-default
    • 写了这个属性之后,在package里面配置的类具有action功能。
      (3)、namespace属性
    • namespace属性和 值和action里面的name属性值构成访问路径。


      image.png

      里面的红色框框中的属性值构成了访问路径。

    标签action

    action标签配置action访问路径。

    action标签属性:

    (1)name属性:

    • namespace属性和 值和action里面的name属性值构成访问路径。
    • 在package标签里面写多个action标签,但是action的name属性值不能相同。
      (2)、class属性:
    • action全路径
      (3)、method属性:
    • 比如,action里面默认执行的方法是execute(),但是在action里面其他方法。让action里面多个方法执行 ,使用method进行配置。

    标签result

    这个标签是根据不同的返回值,配置到不同的路径中去。

    result标签中的属性

    (1)、name属性

    • 和返回值一样


      image.png

      (2)type属性:

    • 配置如何到路径中去(转发或者重定向)
    • type属性的默认值是转发。(转发的特点:地址不会变)

    二、实现自己第一个hello

    首先第一步需要去配置自己web.xml,里面一部分是需要配置过滤器的。
    1、web.xml的位置如下:


    web.xml

    具体的代码见下面:

    </welcome-file-list>
       <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、那么接下来就是要写主体部分了:
    (1)、在进入正题之前我们需要知道的就是action的编写方式:
    首先Action有三种编写方式:
    第一种:创建普通类,这个不继承任何类,不实现任何接口。
    代码如下:

    package com.manman.itcast;
    
    public class Hello {
    
    }
    
    

    第二种:创建一个类,实现接口Action

    package com.manman.itcast;
    
    import com.opensymphony.xwork2.Action;//一定不能导错包。
    
    /*
     * 实现接口
     */
    public class HelloAction implements Action {
        @Override
        public String execute() throws Exception {
            // TODO Auto-generated method stub
            return null;
        }
    
    }
    
    

    需要注意的是:


    image.png

    我们可以用接口中常量作为返回值

    第三种:创建类,继承类ActionSupport(最常用的方法)

    package com.manman.itcast;
    
    import com.opensymphony.xwork2.ActionSupport;
    /*
     * 继承类
     */
    public class actionsupport extends ActionSupport {
    
    }
    
    

    配置Struts.xml*******在action中一般默认执行execute()方法,但是我们知道有时候我们需要访问的方法可能会很多,那该如何处理,如下:

    • 访问action中方法(重点),有三种方式:
      第一种:使用action标签的method属性,在这个属性里面写执行的action的方法。
    <action name="orders" class="cn.itcast.from" method="add">
    

    我们来看一下它的实现结果:


    hello

    第二种:使用通配符的方法实现。

    在action标签里面name属性,name属性值里面写*
    (1)、* 理解,表示匹配任意内容
    比如访问hello , * 可以匹配到
    访问add,*也可以访问到。

     <!-- 通配符的方法实现
                name属性值里面写符号*
                (1)执行action里面的add方法,访问book_add,使用book_*可以匹配到,*相当于add
                (2)执行action里面的update方法,访问book_update,使用book_*可以匹配到,*相当于变成update
                上面两个路径使用book_*可以匹配到
                method属性写*值
                 下面的1表示第一个*
              -->
              <action name="book_*" class="com.manman.itcast" method="{1}"></action>
             <result name="SUCCESS">from.jsp</result>
    

    第二种方法的实现结果:


    HELLO

    第三种:动态访问实现(一般不怎么用)

    相关文章

      网友评论

        本文标题:struts2配置标签以及实现自己第一个hello

        本文链接:https://www.haomeiwen.com/subject/vcajdftx.html