`
foryougeljh
  • 浏览: 116411 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2.1.8

 
阅读更多

开发Struts2应用依赖的jar文件

struts2-core-2.x.x.jar :Struts 2框架的核心类库

xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建

ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性

freemarker-2.3.x.jar :Struts 2UI标签的模板使用FreeMarker编写

commons-logging-1.x.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4JJDK 1.4+的日志记录。

commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件

Struts2应用的配置文件.

Struts2默认的配置文件为struts.xml ,该文件需要存放在WEB-INF/classes

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

</struts>

Struts2web中的启动配置

struts2中,struts框架是通过Filter启动的。他在web.xml中的配置如下:

<filter>

<filter-name>struts2</filter-name>

<filter-class>

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

struts2读取到struts.xml的内容后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件

Struts.xml配置中的包的介绍

<package name="itcast" namespace="/test" extends="struts-default">

<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >

<result name="success">/WEB-INF/page/hello.jsp</result>

</action>

</package>

配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,如果其他包要继承该包,必须通过该属性进行引用。

包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/helloworld.action

namespace属性可以不配置,对本例而言,如果不指定该属性,默认的命名空间为“”(空字符串)。

通常每个包都应该继承struts-default包, 因为Struts2很多核心的功能都是拦截器来实现。struts-default定义了这些拦截器和Result类型。

当包继承了struts-default才能使用struts2提供的核心功能。

struts-default包是在struts2-core-2.x.x.jar文件中的struts-default.xml中定义。

struts-default.xml也是Struts2默认配置文件。 Struts2每次都会自动加载 struts-default.xml文件。

包还可以通过abstract=“true”定义为抽象包,抽象包中不能包含action

访问struts2actionURL路径由两部份组成

包的命名空间+action的名称,例如访问本例子HelloWorldActionURL路径为:/test/helloworld,另外我们也可以加上.action后缀访问此Action

可以使用EL表达式访问Action中的属性。

Action名称的搜索顺序

Action配置中的各项默认值

1>如果没有为action指定class,默认是ActionSupport

2>如果没有为action指定method,默认执行action中的execute() 方法。

3>如果没有指定resultname属性,默认值为success

Actionresult的各种转发类型

常用的类型有: dispatcher(默认值) redirect redirectAction plainText

result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。如下:

<result type="redirect">/view.jsp?id=${id}</result>

下面是redirectAction 结果类型的例子,如果重定向的action中同一个包下:

<result type="redirectAction">helloworld</result>

如果重定向的action在别的命名空间下:

<result type="redirectAction">

<param name="actionName">helloworld</param>

<param name="namespace">/test</param>

</result>

redirect
重定向到一个URL ,被跳转的页面中丢失传递的信息,如
request
org.apache.struts2.dispatcher.ServletRedirectResult

redirectAction
重定向到一个Action ,跳转的页面中丢失传递的信息,如
request
org.apache.struts2.dispatcher.ServletActionRedirectResult


redirect-action
重定向到一个Action ,跳转的页面中丢失传递的信息,如request
org.apache.struts2.dispatcher.ServletActionRedirectResult

注:redirectredirect-action区别

一、使用redirect需要后缀名 使用redirect-action不需要后缀名
二、type="redirect"的值可以转到其它命名空间下的action,redirect-action只能转到同一命名空下的 action,因此它可以省略.action的后缀直接写action的名称。

多个Action共享一个视图--全局result配置

<package ....>

<global-results>

<result name="message">/message.jsp</result>

</global-results>

</package>

Action的属性注入值

Struts2Action中的属性提供了依赖注入功能。属性必须提供setter方法。

public class HelloWorldAction{

private String savePath;

public String getSavePath() {

return savePath;

}

public void setSavePath(String savePath) {

this.savePath = savePath;

}

......

}

<package name="itcast" namespace="/test" extends="struts-default">

<action name="helloworld" class="cn.itcast.action.HelloWorldAction" >

<param name="savePath">/images</param>

<result name="success">/WEB-INF/page/hello.jsp</result>

</action>

</package>

获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象

方法一,通过ServletActionContext.类直接获取:

HttpServletRequest request = ServletActionContext.getRequest();

HttpServletResponse response = ServletActionContext.getResponse();

HttpSession session = request.getSession();

ServletContext servletContext = ServletActionContext.getServletContext();

方法二,实现指定接口,struts框架运行时注入:

public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware{

private HttpServletRequest request; private ServletContext servletContext; private HttpServletResponse response;

public void setServletRequest(HttpServletRequest req) {

this.request=req;

}

public void setServletResponse(HttpServletResponse res) {

this.response=res;

}

public void setServletContext(ServletContext ser) {

this.servletContext=ser;

}

Struts2文件上传

第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar

第二步:把form表的enctype设置为:“multipart/form-data“ method=”post”

第三步:在Action类中添加以下属性, 属性红色部分对应于表单中文件字段的名称(name=” uploadImages”).提供GET/SET方法。

public class HelloWorldAction{

private File[] uploadImages;//得到上传的文件

private String[] uploadImagesContentType;//得到文件的类型

private String[] uploadImagesFileName;//得到文件的名称

//这里略省了属性的getter/setter方法

public String upload() throws Exception{

String realpath = ServletActionContext.getServletContext().getRealPath("/images");

File file = new File(realpath);

if(!file.exists()){

file.mkdirs();

}

for(int i=0 ;i<uploadImages.length; i++){

File uploadImage = uploadImages[i];

FileUtils.copyFile(uploadImage, new File(file, uploadImagesFileName[i]));

}

return "success";

}}

}

分享到:
评论

相关推荐

    最新struts2.1.8 src and lib

    最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib最新struts2.1.8 src and lib

    struts2.1.8_jar包

    Struts2.1.8_jar包是针对Java Web开发的一款关键框架——Struts2的特定版本库。这个包包含了开发基于Struts2框架的应用所需的核心组件和其他依赖库,为开发者提供了一整套用于构建MVC(Model-View-Controller)架构...

    开发框架struts2.1.8.zip

    这个"开发框架struts2.1.8.zip"包含了Struts 2的版本2.1.8,这是一个重要的里程碑,因为它引入了许多增强功能和改进,以提升开发者体验和应用性能。 首先,Struts 2的核心特性之一是Action类,它是处理用户请求的...

    struts 2.1.8 jar包

    struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包 struts 2.1.8 jar包

    Struts2.1.8所依赖的主要包

    Struts2.1.8是Apache Struts框架的一个版本,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架。这个版本主要依赖于一系列的JAR(Java Archive)文件来提供其核心功能。以下是Struts2.1.8所依赖...

    struts2.1.8学习笔记

    Struts2.1.8是Apache Struts框架的一个版本,这个框架主要用于构建基于Java的Web应用程序。Struts2是一个开源的MVC(Model-View-Controller)架构,它旨在简化开发过程并提供一种结构化的解决方案,使开发者可以更加...

    struts 2.1.8 jar 完整开发

    commons-fileupload-1.2.1 commons-io-1.3.2 freemarker-2.3.15 ognl-2.7.3 struts2-json-plugin-2.1.8.1 struts2-embeddedjsp-plugin-2.1.8.1 struts2-core-2.1.8.1 ...struts2-spring-plugin-2.1.8.jar

    Java代码生成工具 绿色版_生成Struts2.1.8,Spring2.5,Hibernate3代码

    Java代码生成工具是一种高效开发辅助软件,主要用于自动化生成基于Java技术栈的Web应用程序代码,尤其针对Struts2.1.8、Spring2.5和Hibernate3这三个经典框架的集成应用。这样的工具能够显著提高开发效率,减少手动...

    struts2.1.8插件及学习文档

    Struts2.1.8是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的Java Web应用开发框架。Struts2提供了丰富的特性,使得开发者能够更高效地构建动态、交互式的Web应用。在这个“struts...

    struts2.1.8jar包 精简版

    Struts2.1.8是Apache Struts框架的一个版本,这是一个流行且强大的Java Web应用程序开发框架,用于构建基于MVC(Model-View-Controller)设计模式的Web应用。该框架的目标是提供一个结构化和可扩展的方式来管理Java ...

    struts2.1.8+spring2.5.6

    Struts2.1.8与Spring2.5.6是两个经典的Java企业级开发框架,它们在J2EE(Java 2 Platform, Enterprise Edition)应用中扮演着重要的角色。Struts2是一个强大的MVC(Model-View-Controller)框架,而Spring则是一个...

    struts2.1.8.jar(全部jar包及api)

    Struts2.1.8是Apache Struts框架的一个版本,它是Java EE平台上的一款流行MVC(Model-View-Controller)框架,用于构建企业级Web应用程序。这个版本的Struts提供了许多功能,帮助开发者实现可扩展性和灵活性。让我们...

    struts2.jar包(struts2.1.8.jar包)三号文件(太大总共分三次)

    标题中的“struts2.jar包(struts2.1.8.jar包)三号文件(太大总共分三次)”可能是指由于文件大小限制,原本的struts2.1.8.jar文件被分割成了三个部分进行传输或存储。这通常发生在文件过大,无法一次性发送或上传...

    struts2.jar包(struts2.1.8.jar包)一号文件(太大总共分三次)

    标题中的"struts2.1.8.jar包"指的是Struts2框架的特定版本——2.1.8。每个版本的Struts2都可能包含一些新特性、改进和安全修复。在2.1.8这个版本中,开发者可能会找到对之前版本的增强,比如性能优化、新的插件支持...

    struts2.1.8的包

    Struts2.1.8是Apache Struts框架的一个版本,它是基于MVC(Model-View-Controller)设计模式的开源Java Web应用框架。这个版本包含了与Spring、JSF(JavaServer Faces)、JFreeChart等其他技术的集成和支持,使得...

    struts2.1.8 struts2源码 Eclipse关联这个可以

    在Eclipse中关联Struts2.1.8源码,可以帮助开发者更好地理解和调试代码。步骤包括: - 下载Struts2.1.8的源码包。 - 在Eclipse中,右键点击项目,选择"Build Path" -&gt; "Configure Build Path" -&gt; "Libraries" -&gt; ...

    Struts2.1.8最基础包完整包.zip

    Struts2.1.8是Apache Struts框架的一个版本,它是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架。这个版本的Struts2包含了基础的组件和功能,使得开发者能够快速搭建和管理Web应用程序。在描述中...

Global site tag (gtag.js) - Google Analytics