基于mvc模式的应用框架之struts(二)

本文详细介绍了Struts2框架中的Action类三种写法,并解析了Struts2.0中的通配符、常量配置及Action名称搜索机制等内容。

一、Action类的三种写法

1.既不继承也不实现,普通方法

代码:

public class UserAction 
{
    private String userName;
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public String login()
    {
        System.out.println("UserAction.login()" + userName);
        return "login";
    }

    public String register() 
    {
        System.out.println("register()" + userName);
        return "register";
    }
}
2.继承自ActionSupport

代码:

public class UserAction extends ActionSupport
{
    public String login() 
    {
        System.out.println("UserAction.login()");
        return SUCCESS;
    }
}
3.实现Action类

代码:

public class UserAction implements Action 
{
    public String login() 
    {
        System.out.println("UserAction.login()");
        return "success";
    }

    @Override
    public String execute() throws Exception 
    {
        return null;
    }
}

二、Struct 2.0中的通配符

在下面的代码中,*表示传过来的参数通配符,{1}的值和*的值一样。

<action name="down_*" class="cn.itcast.e_fileupload.DownAction" method="{1}">

三、Struct 2.0中的常量与路径

1.Struts2中常用的常量

指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出

<constant name="struts.i18n.encoding" value="UTF-8"/>

自定义后缀修改常量

<constant name="struts.action.extension" value="do"/>  

设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

<constant name="struts.serve.static.browserCache" value="false"/>

当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

<constant name="struts.configuration.xml.reload" value="true"/>
开发模式下使用,这样可以打印出更详细的错误信息 

<constant name="struts.devMode" value="true" />

默认的视图主题

<constant name="struts.ui.theme" value="simple" />

与spring集成时,指定由spring负责action对象的创建

<constant name="struts.objectFactory" value="spring" />

该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为 false

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

上传文件的大小限制

<constant name="struts.multipart.maxSize" value=“10701096"/>
2.Struts2中指定多个配置文件

这里写图片描述
这里写图片描述

3.Struts2的Action名称搜索机制

1、获得请求路径的URI,例如url是:
/Struts2_01/hello_a/a/b/helloWorld.action
2、首先查询namespace为/hello_a/a/b的package,
如果存在这个package,则在这个package中查询名字为helloWorld的
action,如果不存在这个package则转步骤3
3、查询namespace为/hello_a/a的package,
如果存在这个package,则在这个package中寻找名字为helloWorld的
action,如果不存在这个package,则转步骤4
4、查询namespace为/hello_a的package,
如果存在这个package,则在这个package中寻找名字为helloWorld的
action,如果仍然不存在这个package,则转步骤5
5、查询默认的namaspace的package
查询名字为helloWorld的action(默认的命名空间为空字符串“/” )
如果还是找不到,页面提示404找不到action的异常。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The_Web3_社区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值