Java Web整合开发(79) -- Struts 2

本文介绍了Struts2.x框架的核心概念,包括如何使用任何POJO作为Action、Action的执行方式及方法调用机制。此外,还详细说明了如何通过配置文件指定执行特定的Action方法,以及零配置下Action包位置的指定。

一、 Struts 2.x 概述

不继承任何类的Action

Struts 2的Action并不一定要实现Action接口或者继承ActionSupport,任何POJO都可以做Action,只要这个Action具有public String execute()方法。

Action的可执行方法

execute() 是Action的默认方法。Struts 2还可以执行Action的其他方法,只要这些方法没有参数,并返回String类型。这些方法也可以有throws声明,也可以没有。Struts 2会在运行时根据方法的特征判断是否是可执行方法(参数、返回值),并通过反射执行。

通过URL执行Action的方法

http://localhost:8080/struts2/loginPerson!logout.action将执行loginPerson的logout()方法。

将执行方法配置到Action

struts.xml

<action name="*Person" class="com.helloweenvsfei.struts2.action.LoginAction" method="{1}">
    <result name="success">/welcome.jsp</result>
</action>

web.xml中指定Action目录

零配置是必须在web.xml的Filter中指定Action包的位置,否则会默认到struts.xml中加载Action配置。

    <filter>
        <filter-name>struts</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
         
        <init-param>
            <param-name>actionPackages</param-name>
            <param-value>com.helloweenvsfei.struts2.action</param-value>
        </init-param>
        <!--    
           <init-param>   <param-name>struts.action.extension</param-name>   <param-value>helloween</param-value> </init-param> --> </filter>

总结:

Java Web都是使用线程来处理用户的请求(request)的,一次请求对应一个处理线程。Struts 2会为每个处理线程分配一个Action对象,将提交的参数注射到Action属性中,并调用Action的相关方法如execute()等完成业务逻 辑。因此,Struts 2的Action会有多个对象。处理完毕,线程运行结束,Action也将被丢弃。Struts 2的Action是线程安全的。

Struts 2会自动完成HttpServletRequest中取参数之类的工作,抛弃HttpServletReques、HttpServletResponse等Servlet API,使开发、测试变得更加简单。

转载于:https://www.cnblogs.com/thlzhf/p/4383666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值