Struts2

struts1 和 struts2是完全不同的两种设计思想
Struts1是以ActionServlet作为核心控制器
而struts2是以FilterDispatcher作为核心控制器
struts2是基于MVC设计模式的Web应用框架 在mvc模式中可以替代servlet的角色

执行流程

1.通过网址请求
/hello/HelloAction
2.找对应 命名空间(网址)
3. 找到后 再通过网址的HelloAction去匹配
Action标签中的 name
4.匹配上 用class 标签 创建其类的对象
5.调用该类的方法
6.拿到类中方法的返回值 去匹配 reslut 标签
7.返回值匹配上 调用 标签中的 页面

这里写图片描述

常量配置修改
可以去default.properties文件 找到你要修改的配置
修改字符集
struts.i18n.encoding=UTF-8
表示 访问路径的后缀名 可以是.action 或者无后缀
struts.action.extension=action,,
可以给你的配置文件提供热加载(更改完了不用重启你的服务器)
struts.devMode = false

struts2的xml文件配置中的标签

struts 根标签

package 
name标签 只要不重复即可 可以进行模块化区分 
namespace标签 命名空间(访问Action网址前的一个网址部分)
extends标签 继承一个包 struts-default 默认配置 默认提供的功能

action
name标签 是你访问的路径
class标签 类的全限定类名
method标签 类中被访问的方法

result
name标签 方法的返回值(匹配)
type 请求跳转的方法 默认是 请求转发dispatcher
值部分 跳转网站资源

Action类 创建方式1
随便一个普通类 都可以作为Action类
只需要你去配置struts.xml文件
相比于servlet 减少代码的侵入性

<struts>
    <package name="***" namespace="***" extends="struts-default">
        <action name="***" class="***">
            <result name="***" type="***">值部分</result>
        </action>
    </package>
</struts>

实现Action方式2
实现 Action接口
意义在于 可以提醒你 Action类中的方式 该怎么写

public class DemoAction implements Action{

    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        return null;
    }

}

常用创建Action类 方式
因为该类实现了 很多接口 一个接口就有一个功能
例如: Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable

public class DemoAction extends ActionSupport{

}

Action 标签的默认值
类中代码

public class Demo06Action {
    public String execute() {
        System.out.println("测试 Action 标签的默认值");
        return "success";
    }
}

默认使用的类 ActionSupport类
(如果你这个类找不到 就去struts-default文件下 找默认的类)
默认执行的方法 execute()
默认接收返回值 “success”
默认的跳转方式 请求转发

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="test" namespace="/test"
        extends="struts-default">
            <action name="Demo06Action_*" class="com.lanou3g.test.Demo06Action" method="{1}">
                <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

xml中的配置写成这样同样可以获取

<package name="test" namespace="/test" extends="struts-default">
    <action name="Demo06Action">
        <result>/hello.jsp</result>
    </action>
</package>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值