Struts2学习之路(3)搭建Struts开发环境

(一)环境搭建

创建Struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

</struts>

在web.xml文件配置struts2的核心过滤器

<!-- 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>/*</url-pattern>
   </filter-mapping>

(二) struts2案例
创建一个class:“FirstAction”,创建一个方法:“SayHellow()”

public class FirstAction {
    /*
     * 
     * 动作方法:
     * 一般返回string类型,也可返回null
     * 
     * */
    public String SayHellow(){
    System.out.println("hello");
    return "success";
    }
}

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

<struts>
    <package name="first" extends="struts-default">
        <action name="hello" class="action.FirstAction" method="SayHellow">
            <result name="success" type="dispatcher">/WEB-INF/success.jsp</result>
        </action>
    </package>
</struts>

实验一下
index.jsp
这里写图片描述
success.jsp
这里写图片描述
点击
这里写图片描述
成功跳转到success.jsp
这里写图片描述

<?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.devMode" value="true"></constant>

    <!-- 设定访问后缀为.action -->
    <constant name="struts.action.extension" value="action"></constant>

    <!--package标签 
        作用:给访问的action进行分包管理
        属性:
            name:指定包的名称,必须唯一
            extends:继承,一般需要继承 struts-default
            abstract:声明为抽象包,只有没有action标签的包,才能定义为抽象包
            namespace:指定当前包的名称空间,它可以让我们的访问url模块化。
                命名规则:/+名称 如:“/user”
                指定该属性后,访问url变成:名称空间+包名称
                例如:
                    /user/userAction.action
                命名空间有默认值:默认值是:“”



     -->

    <package name="first" extends="struts-default">
        <!-- action标签
            作用:建立动作名称,动作类和动作方法的对应关系
            属性:
                name:指定动作名称
                class:指定动作类的全限定名
                method:指定方法名称
            动作类的三种创建方法:
                第一种:无侵入式:       实际开发应用不多
                    例如FirstAction
                第二种:实现接口的方式     实际开发应用不多
                    Action类实现一个接口Action
                    默认动作方法:当执行execute方法时,method属性可不写
                    <action name="hello" class="action.FirstAction">
                    </action>
                第三种:继承ActionSupport的方式
                    默认动作类:ActionSupport
                    <action name="hello">
                    </action>   
         -->

        <action name="hello" class="action.FirstAction" method="SayHellow">
            <result name="success" type="dispatcher">/WEB-INF/success.jsp</result>
        </action>

        <!-- action的三种访问方式 -->
        <!-- 第一种 全匹配方式 -->
            <action name="hello" class="action.FirstAction" method="SayHellow">
                <result name="success" type="dispatcher">/WEB-INF/success.jsp</result>
            </action>
        <!-- 第二种 使用通配符方式 -->
            <!-- 基本用法 如name为  addUser method为addUser 动作类Action为UserAction -->
            <action name="*" class="action.UserAction" method="{1}">
                <result name="{1}" type="dispatcher">/WEB-INF/{1}{2}.jsp</result>
            </action>
            <!-- 高级用法  如name为  add_User method为addUser 动作类Action为UserAction-->
            <action name="*_*" class="action.{2}Action" method="{1}{2}">
                <result name="{1}" type="dispatcher">/WEB-INF/{1}{2}.jsp</result>
            </action>
        <!-- 第三种 动态方法调用 -->


        <!--result标签
                    作用:用于配置结果视图,可以是jsp,html,action
                    属性:
                        name:指定逻辑结果视图。与动作方法的返回值进行比较,一致时,前往配置页面或者action
                        type: 指定前往视图的方法。
                            常用的type:
                                dispatcher:请求转发(默认值)
                                redirect:重定向
                                redirectAction:重定向到另一个动作(会自动在url后面拼接.action )

                    全局结果视图
                        定义放在action标签外面,在    <global-results>标签内部的结果视图
                        可以在多个action使用
                        局部结果视图优先级较高
                        <package name="myDefault" extends="struts-default" abstract="true" >
                            <global-results>
                                <result name="login">login.jsp</result>

                            </global-results>
                        </package>
                        其他package继承这个package
                 -->            

    </package>

</struts>

(三)struts2内部执行过程
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值