Struts2学习笔记

struts2 核心是拦截器
1.配置首先加入相应的jar包。
2.配置 web.xml增加以下

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
    <!-- struts2的拦截控制中心 -->
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <!-- struts2的拦截后缀 -->
    <url-pattern>*.action</url-pattern>
  </filter-mapping>

3.在src目录当中增加struts.xml

struts.xml配置是以package位单位的
package
name–名字
namespace–工作空间(命名空间)
extends–继承与哪个包
abstract–加入这个属性之后这个包可以被继承

package底下的标签
action
    name--请求名
    method--处理的方法名,默认execute
    class--哪一个类处理
result
    name--返回的名字默认("success" )
    type--返回类型默认("dispatcher"--转发)

前端aciton可以通过 名字!方法 来调用

struts2 常量配置

struts2为了团队开发分工更明确他加入namespace的机制还有多配置文件引入方式


约定Action包名:

要求Action必须放到action、actions、struts、struts2包中。例如:cn.itcast.action、cn.itcast.sturts、cn.itcast.action.user等等。可以使用下面常量来修改Actoin的包


struts2引用标签
<%@taglib uri=”/struts-tags” prefix=”s”%>

//1.取得servletAPI的session: ServletActionContext.getRequest().getSession()
//ActionContext=值栈的#
//2.通过ActionContext取得的session的代理map

//3.取得servlet API的第三种方式:实现ServletRequestAware接口,有struts2系统自动注入

i18n–国际化
1)引用常量:struts.custom.i18n.resources=globalMessages
2)配置globalMessages_en_US.properties 国际化资源文件
3)在页面上用标签


struts2 返回类型
dispatcher – forward view(默认的返回类型)
chain – forward Action
redirect – 重定向view
redirectAction –重定向Action


struts2 的自定义返回类型
1)创建一个java类继承ServletRedirectResult,重写doExecute方法
2)在Struts.xml声明自定义的返回类型


struts2 返回json数据
1)首先包要继承json-default
2)并且返回类型 声明为 json(struts2 默认的会把有getter方法属性转换成Json)


struts2 拦截器
1)继承AbstractInterceptor
2)重写intercept()方法 (// 拦截通过 arg0.invoke();)
3)配置struts.xml

<!-- 声明拦截器 -->
<interceptor name="myItcep" class="com.j150914.Interceptor.MyItcep" />

<!-- 自定义的拦截器栈 -->
<interceptor-stack name="myItcepStack">
    <interceptor-ref name="token" />
    <interceptor-ref name="defaultStack" /> <!-- 默认拦截器栈 -->
    <interceptor-ref name="myItcep" />
</interceptor-stack>

前提:前端form表单, 请求方式post, enctype=”multipart/form-data”
struts2 上传
1)Action类要有file类型的setter getter方法
2)上传的方法只要简单的做标准io流操作
原理:struts2拦截器已经把上传的文件存到临时文件当中,然后我们方法只要做一个复制到我们的上传路径就好了。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值