Struts2框架学习笔记

MVC的设计思想和前端控制器


搭建架构
1、拷贝加载jar包
2、在web.xml中配置Struts2,核心控制器
3、配置Struts2.xml文件



框架的常见语法
1、在web.xml配置Struts的核心控制器
<filter>
        <filter-name>struts2</filter-name>      <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecute Filter</filter-class>
</filter>
<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>   
</filter-mapping>



2、在Struts.xml中引入其他的.xml文件
<include file="example.xml"/>


3、在struts.xml中配置添加常量,可以在此覆盖常量,其中name是在核心包查的defult.properties 
<constant name="struts.action.extension" value="action,do,,"/>action或添加其他的的扩展名
<constant name="struts.i18n.encoding" value="UTF-8"/>改变编码格式
<constant name="struts.devMode" value="true"/>启动开发者模式,修改xml后无需重启
<constant name="struts.serve.static.browserCache" value="false"/>关闭浏览器缓存,部署时打开要


4、package元素:仅仅是为了统一管理了多个action元素
 <package name="" namespace="/" extends="struts-default"  abstract="true|false">
常用属性:
name:表示当前package元素的名称,多个不能重复
extends:自定义的package元素必须继承struts-default包或者struts-default的子包
namespace:命名空间,和action的name共同决定了一个action的访问路径
abstract:表示当前的package是不是抽象的,如果是true,就不能定义action元素,只能被其他包继承
在开发中,共同的配置信息独立放到一个包,其他一个模块一个包,继承共同的包就可以


5、action元素:是package子元素,用于配置action类
<action name="" class="" method=""/>
常用属性:
name:action的名称,决定了访问路径和包namespace,没有斜线,同包内不能重复
class:action类的全限定名称,表示把哪一个类交给框架管理,有默认值actionsuport
method:当前action需要执行哪一个方法。必须在类中。有默认值execute


6、result元素,是action元素的子元素,表示结果试图(action执行后跳转到哪)
<result name="" type="">文本</result>
常用属性:
name:逻辑视图名称,action返回结果。默认值success
type:表示资源的跳转方式(请求转发/url重定向)阅读strut-defult包
dispatcher:请求转发(action请求转发到jsp)默认
chain:请求转发(action请求转发到action)
redirect:URL重定向(action重定向到jsp)
redirectAction:URL重定向(action重定向到action)
stream:文件下载使用,输入流
文本内容:表示需要跳转资源的路径(从webapp下开始找)
result元素分类:
局部的结果视图:定义在action下,只能当前action跳转的
全局的结果视图:定义在package中的,<global-results>里面,当前包的action都可以跳进去
先去找自己的,找不到找包的,都找不到报错。


7、配置文件是有先后顺序的


Action类的三种编写方式
1、使用公共的pojo类,提供公共的无参数的action方法,返回自己定义
2、定义一个类实现于xwork.action,直接返回常量
3、继承actionSuport类,
真实开发中,在ActionSpport类与我们自己的类中间,定义一个BaseAction,里面存储共同的代码和操作


Action多方法调用  
最初的想法,一个action对应一个类中的一个方法,所以三个类的话需要些三个action,且name不可以相同。
1、解决方案:DMI动态方法调用,首先开启DMI,方法method无需定义,调用格式action名称加上!加上方法名
2、使用通配符来访问
<action name="employee_*" class="baseAction" method="{1}"/>一个通配符,表示方法
<action name="*_*" class="{1}Action" method="{2}"/>两个通配符,

struts.xml智能提示
在struts的核心包中struts-2.0.dtd拿出来,打开XML-XMLcatalog-user那个选项,点击添加,file找到那个文件,keytype选择URI,key就是struts.xml中的http://struts.apache.org/dtds/struts-2.0.dtd在前头。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值