struts2相关简单介绍
一 Struts2环境配置
1.准备jar包,核心jar包有:
2.创建Struts2项目并导入jar包
3.在Struts2项目中src下创建Struts.xml配置文件
4.在Web.xml文件中配置拦截器
其中:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter来自![](https://images2017.cnblogs.com/blog/1108357/201708/1108357-20170808180849183-366568864.png)
二使用
1.Struts自动设值:
1.1必须继承ActionSupport这个类
1.2将你要自动设值得对象进行 get set
1.3必须要在struts.xml文件中继承struts-default
2.Struts页面操作:
2.1寻找到struts.xml中的result标签中name属性和后台return配对后进行跳转页面。
2.2result的属性:
重点介绍:
{ dispatcher :跳转到一个指定的jsp页面 , 在没有设值type属性的时候为默认属性。
redirect:重定向,可以执行跳转到一个url。
redirectAction:可以指定跳转到一个action. 通常用这个。
}
其他:
1,dispatcher [默认配置]
org.apache.struts2.dispatcher.ServletDispatcherResult
默认结果类型,用来呈现JSP页面
2,chain
com.opensymphony.xwork2.ActionChainResult
将action和另外一个action链接起来
3,freemarker
org.apache.struts2.views.freemarker.FreemarkerResult
呈现Freemarker模板
4,httpheader
org.apache.struts2.dispatcher.HttpHeaderResult
返回一个已配置好的HTTP头信息响应
5,redirect
org.apache.struts2.dispatcher.ServletRedirectResult
将用户重定向到一个已配置好的URL
6,redirectAction
org.apache.struts2.dispatcher.ServletActionRedirectResult
将用户重定向到一个已定义好的action
7,stream
org.apache.struts2.dispatcher.StreamResult
将原始数据作为流传递回浏览器端,该结果类型对下载的内容和图片非常有用
8,velocity
org.apache.struts2.dispatcher.VelocityResult
呈现Velocity模板
9,xslt
org.apache.struts2.views.xslt.XSLTResult
呈现XML到浏览器,该XML可以通过XSL模板进行转换
10,plaintext
org.apache.struts2.dispatcher.PlainTextResult
返回普通文本类容
-----------------------------------------------------------------------------
这此result-type可以在struts2-core-2.0.11.1.jar包或struts2源代码中的struts-default.xml文件中找到,在这个文件中找到<result-types>标签,所有的result-type都在里面定义了。
三Struts的通配符
*就是他的通配符
{}获取通配符的格式
第一个* 对应的格式是{1}
第二个* 对应的格式是{2}
...
..
四Struts的国际化
<constant name="struts.custom.i18n.resources" value="zr"></constant>
创建zr_en_US.properties ,zr_zh_CN.properties等文件
文件内容英语配置英语语言格式
中文内容配置根据网页版Unicode编码转换工具或者jdk中的Unicode编码转换工具或者MyEclipseUnicode编码转换工具 实现转码。
Struts2项目自动识别语言的依据:
是文件的名称为何种语言
五Struts的上传下载
上传
注意: <interceptor-ref name="defaultStack"></interceptor-ref> name为拦截器中的固定名称
<interceptor-ref name="fileUpload" > 也是为拦截器中固定名称
为什么要调用拦截器中这两个名称:因为一次拦截器达不到控制文件的大小类型我们需要再次调用拦截器中的上传。
下载
1.<result type="stream">
<param name="contentDisposition">attachment;filename=${fileName}</param>
</result>
attachment:为下载的弹出层
filename=${fileName} : 为下载时候的文件名称
注意:result 的type属性必须为stream流对象 这样可以是后台默认执行 getInputStream
2.public InputStream getInputStream()throws Exception{
}
注意:方法名为固定写法
返回值必须为流对象行使 这样子可以使用方法被默认执行
2017-08-0818:13:42