Struts2学习笔记

来源:互联网 发布:北京淘宝城地址在哪里 编辑:程序博客网 时间:2024/06/16 15:57

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
原创粉丝点击