您的位置:首页 > 编程语言 > Java开发

Struts2学习笔记

2016-01-07 21:47 483 查看
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拦截器已经把上传的文件存到临时文件当中,然后我们方法只要做一个复制到我们的上传路径就好了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2.0