首页 > 代码库 > struts2相关简单介绍

struts2相关简单介绍

 

Struts2环境配置

1.准备jar包,核心jar包有:

技术分享

2.创建Struts2项目并导入jar

3.Struts2项目中src下创建Struts.xml配置文件

技术分享

4.Web.xml文件中配置拦截器

技术分享

其中:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter来自技术分享

 

 

二使用

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. 通常用这个。

}

 其他:

1dispatcher [默认配置]
org.apache.struts2.dispatcher.ServletDispatcherResult

默认结果类型,用来呈现JSP页面

2chain
com.opensymphony.xwork2.ActionChainResult
action和另外一个action链接起来

3freemarker  
org.apache.struts2.views.freemarker.FreemarkerResult 
呈现Freemarker模板

4httpheader  
org.apache.struts2.dispatcher.HttpHeaderResult   
返回一个已配置好的HTTP头信息响应

5redirect  
org.apache.struts2.dispatcher.ServletRedirectResult 
将用户重定向到一个已配置好的URL


6redirectAction  
org.apache.struts2.dispatcher.ServletActionRedirectResult 
将用户重定向到一个已定义好的action

7stream  
org.apache.struts2.dispatcher.StreamResult  
将原始数据作为流传递回浏览器端,该结果类型对下载的内容和图片非常有用

8velocity  
org.apache.struts2.dispatcher.VelocityResult   
呈现Velocity模板

9xslt  
org.apache.struts2.views.xslt.XSLTResult  
呈现XML到浏览器,该XML可以通过XSL模板进行转换

10plaintext  
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="http://www.mamicode.com/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

struts2相关简单介绍