Struts2基础

合集下载

基于Struts2框架的网站信息内容管理平台的设计与实现

基于Struts2框架的网站信息内容管理平台的设计与实现
的具 体 应 用 。
关 键 词 :t t Sr s u 2;内容 管 理 系统 ; b WeWok We ; b r
中 图分 类 号 :P 1 T 3 1 文 献 标 识 码 : A d i 1 .9 9 ji n 10 - 7 . 02 0 .2 o: 0 36 /.s .0 62 5 2 1. 80 7 s 4
(tt n5 1o eSa d iirt no ai Fl n e vs n N nhn 30 6 C ia Sa o 6 fh t eA m n t i f do i adT l io , aea g 0 4 , h ) i t t sao R m e i 3 n
Ab ta t t t s a xe d b e J v e r me r . I i h r s t e a v n a e fS r t l a d W e W ok S r t s r — s r c :S r s i n e t n a l a a EE W b fa wok t n e t h d a t g s o t s n b r . t s i e u 2 i u u 2
改进 , We Wok 是 b r2的升 级 。它采 用拦 截器 的机 制 来 处理 用户请 求 , 得业 务 逻辑控 制器 能够 与 页面端 的 使 S rl P 完 全 脱 离 开 。这 种 “ 层 的思 想 ” 代 码 ev t I eA 分 让 具 有可 扩展性 和 易维 护 性 。 图 1展示 了 S us 架 tt r 2框 的整体 构架 。
De i n a d m p e e t to fW e st nt n a g m e t S se s d o r s sg n I l m n a i n o b ie Co e tM na e n y t m Ba e n St ut2

Struts2框架工作原理及应用体会

Struts2框架工作原理及应用体会
图1
二、Struts2 工作原理 ( 一) Struts2 框架组成。Struts2 框架由三个主要部分组 成: 核心控制器、业务控制器,以及由用户实现的业务逻辑组 件。这里我们将侧重于核心控制器与业务控制器的理解与 说明。
( 二 ) 核 心 控 制 器: FilterDispatcher。 FilterDispatcher 是 Struts2 框架的核心控制器 ,在此,我们可以将 FilterDispatcher 看作一个类似于过滤网的过滤器。当用户发出请求,并到达 Web 硬哟那种时,该过滤器会过滤用户请求。如果用户请求 的结尾为 action,则将该请求转入 Struts2 框架进行处理。当 Struts2 框架获得了* . actio 请求后,会根据请求前面“* ”的 那部分内容,决定调用哪个业务逻辑组件作为响应单位。这 里需要说明的是 Struts2 用来处理用户请求的 Action 实例并 不是业务控制器,而是作为 Action 的代理———正因为 Struts2 的一大特点,与 Servlet API 的非耦合性,使得用户实现的业 务控制器无法直接处理用户请求。有效的提高了后期调试 维护的效率。而 Struts2 框架再次提供了了一系列的拦截器。 这些拦截器负责将 HttpServletRequest 请求的参数解析出来, 传入 Action 中,并毁掉 Action 的 Execute 方法来处理用户请 求。用户实现的 Action 类仅作为 Struts2 的 Action 代理的代 理目标。用户实现的业务控制器则包含了对用户请求的处 理。用户的请求数据包含在 HttpServletRequest 对象中,而用 户的 Action 类无需访问 HttpServletRequest 对象。拦截器负 责将 HttpServletRequest 里的请求数据解析出来,并传给业务 逻辑组件 Action 实例。

strusts2课堂总结

strusts2课堂总结

一、1、struts2struts2是mvc设计思想的一个实现,可以将项目低耦合,提高扩展性2、struts2和struts1的区别struts2不是struts1的升级,而是继承的下xwork的血统,它吸收了struts1和webwork 的优势。

struts2的action是原型,安全的,struts2的action是单例,非安全3、步骤:1、导入包2、在web.xml文件中,加入struts2的核心拦截器3、在src下放入struts2的xml struts.xml4、urlhttp://localhost:8080/Struts2_01_HelloWorld/demo/hello.action二、1、默认值2、转发和重定向的区别转发:url显示的依然是上一个的url,共享上一次的请求重定向:url显示的是下一个的url,不共享3、urlhttp://localhost:8080/Struts2_02_Default/demo/hello.action4、路径http://localhost:8080/Struts2_02_Default/demo/a/b/c/hello.action1、原路径找不到,http://localhost:8080/Struts2_02_Default/demo/a/b/hello.action2、如果1找不到,http://localhost:8080/Struts2_02_Default/demo/a/hello.action3、如果2找不到,http://localhost:8080/Struts2_02_Default/demo/hello.action3、如果3找不到,http://localhost:8080/Struts2_02_Default/hello.action三、11、自定义action继承ActionSupport2、功能方法必须满足格式public String 名字()throws Exception{....};3、urlhttp://localhost:8080/Struts2_03_Action/demo/a.action四、1、如何给action传入参数注意:赋值的必须有封装的set方法,通过el表达式获取的时候,必须有封装的get 方法1、直接给单个参数赋值,在action里建立一个变量,名字与参数的名字一样2、为对象的某个属性赋值,在action里建立一个对象,将参数改为对象名.属性的格式五、1、转发和重定向的区别转发到下一次的时候,url依然是上一次的url,共享上一次的request重定向到下一次的时候,url是下一次的url,不共享上一次的request2、struts2的result的type转发:共享上一次action重定向:不共享上一次action1、转发到下一个jsp,html:dispatcher2、重定向到下一个jsp,html:redirect3、转发到下一个action:chain转到同一个包下的action转发到不同包下的action4、重定向到下一个action:redirectAction转到同一个包下的action转发到不同包下的action六、1、为了分模块开发,可以设置多个xmL文件。

基于Struts2的随书光盘管理系统文件上传模块设计

基于Struts2的随书光盘管理系统文件上传模块设计

基于Struts2的随书光盘管理系统文件上传模块设计摘要:为有效解决随书光盘文件的上传,以struts2框架的common-fileupload组件为基础,讨论了使用struts2框架上传文件的开发配置,在满足随书光盘系统功能的情况下,优化系统功能,保证系统性能稳定,方便管理员和读者的使用。

关键词:大文件上传;随书光盘;struts2中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)09-2149-02基于网络的随书光盘系统中,文件的传送是系统核心。

网络应用中的ftp曾经是文件传送的主要方式,但ftp难于和b/s结构的网络系统无缝集成,且ftp还存在安全性问题,故b/s结构的文件传送组件正逐渐成为文件传送的主流。

struts2[1]是一个优秀的开源框架,它集成了apache开源项目的common-fileupload组件,在上传组件原有文件的基础上,进行了进一步封装,更进一步的简化了文件上传。

通过struts2的文件上传,只需要通过三个属性封装表单里的文件域,即可非常轻松地完成文件上传。

struts2提供对文件下载支持的stream的结果类型,通过借助于struts2提供的文件下载支持,应用可以实现非西欧字符文件名的文件下载,并可以在文件下载前检查用户的权限,从而通过授权控制来控制文件下载。

鉴于随书光盘系统只针对读者提供服务,如果允许所有用户无限制的下载,那将极大的降低系统性能,通过对用户身份进行识别甄别,即可保证用户的使用,又可保证系统的性能。

1 基于b/s结构的上传组件rfc1867协议[2]在http协议的基础上定义了网页文件上传的基本方式,即为表单的input标签增加了file属性,同时限定了form 的method必须为post,enctype必须为multipart/form-data,当post方法的enctype设定为multipart/form-data时,提交表单数值以二进制流的方式来处理表单数据并把文件域指定文件也封装到请求当中,不再以字符串方式提交请求数据。

struts2-convention-plugin_注解使用说明_概述及解释说明

struts2-convention-plugin_注解使用说明_概述及解释说明

struts2-convention-plugin 注解使用说明概述及解释说明1. 引言1.1 概述在现代的Web开发中,Struts2作为一个成熟稳定的Java Web框架,在业界得到广泛应用和认可。

而struts2-convention-plugin则是Struts2框架中一个重要的插件,它通过引入注解的方式来简化配置文件,并提供了一种更便捷、高效的开发方式。

1.2 文章结构本文将详细介绍struts2-convention-plugin的注解使用说明,并以概述、注解说明、使用示例等部分来逐步讲解。

接着,我们将对其进行解释说明,包括与传统struts.xml配置方式的比较、使用时需要注意的事项以及实际应用案例。

最后,我们将总结文章要点并给出对于注解方式的评价和展望。

1.3 目的本文旨在帮助读者更好地理解和掌握struts2-convention-plugin插件中注解的使用方法。

通过本文介绍和示例演示,读者将能够快速上手并灵活运用该插件,从而提高开发效率和代码质量。

以上是“1. 引言”部分内容,请根据需要进行修改和补充。

2. struts2-convention-plugin 注解使用说明:2.1 概述:struts2-convention-plugin 是Struts2 框架中的一个插件,它提供了一种基于注解的方式来配置和管理Action 类。

通过使用这个插件,我们可以简化传统的XML 配置文件,并且能够更加便捷地进行开发。

2.2 注解说明:struts2-convention-plugin 提供了一系列的注解,用于配置和定义Action 类及其相关属性和方法。

以下是常用的几个注解:- @Action:用于标识一个方法作为Action 的入口方法,可以指定URL 映射及HTTP 请求类型。

- @Result:用于指定一个结果视图,可以定义对应的视图页面、重定向操作等。

- @Param:用于将请求参数绑定到Action 类的属性上。

struts2入门手册

struts2入门手册

struts2入门手册首先这个教程是基于你已经安装了myeclipse的基础上的,如果你还没有安装myeclipse 工具软件的话,你需要马上去安装一个。

如果你已经有了工具软件了的话,现在就按照以下步骤来入门struts2吧。

一、下载struts2进入struts的官网/,点击download,选择Full Distrybution:下的struts2-xxx-all.zip,下载struts2的最新版本,将压缩包解压,放置到D盘目录下。

二、解压struts2进入你解压后的struts2文件夹中,到D:\struts2-xxx\apps中,解压其中的struts2-blank.war 压缩文件到D:\struts2-xxx\example,这是struts2提供的基础例子,里面的WEB-INF\lib目录下的包正是struts2正常工作所需要的基本包。

三、导入struts2基本包打开你的myeclipse,创建一个web project工程,命名为test(你也可以自己随意起一个),不要急着点击Finish,先选择Next>,继续选择Next>,在弹出的对话框中把第二个单选框打勾,如图,再点击Finish。

创建好之后在你创建的工程上目录下的WebRoot/WEB-INF/lib目录上单击右键,选择import...,选择General下的File System,点击Next>,选择Browse...,浏览选择到D:\struts\example\WEB-INF\lib目录,点击确定。

选择Sellct All,点击Finish,就完成了struts需要的最基础的核心包的导入。

四、用struts实现一个简单的登陆验证1.修改工程目录下的WebRoot\WEB-INF目录下的web.xml文件,将里面的内容替换为如下代码:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>test</display-name><!-- 设置初始页面的URL --><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><!-- 设置struts过滤器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>2.在工程的src目录下创建struts.xml,代码如下:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 是否开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation"value="false"/> <!-- 指定被struts2处理的请求的后缀类型,多个用逗号隔开 --><constant name="struts.action.extension"value="action"/><!-- 设置浏览器是否静态缓存内容,开发阶段最好关闭 --><constant name="struts.devMode"value="true"/><!-- 设置当struts.xml改动后,是否重新加载,默认为false,开发环境下最好打开 --> <constant name="struts.configuraction.xml.reload"value="true"/> <package name="myPackage"namespace="/"extends="struts-default"> <action name="login"class="action.LoginAction"><result name="success">/welcome.jsp</result> <result name="input">/login.jsp</result></action></package></struts>3.在工程的src目录下创建package(包),命名为action,在action中新建class,命名为LoginAction,代码如下:package action;import javax.servlet.http.HttpSession;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;@SuppressWarnings("serial")public class LoginAction extends ActionSupport {private String name;private String password;public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String forward() throws Exception {return SUCCESS;}//重载ActionSupport中的execute()方法public String execute() throws Exception {//验证输入的Name是否为"name",是则返回"success"否则返回"input"if("name".equals(name)) {HttpSession session = ServletActionContext.getRequest().getSession();session.setAttribute("name", name);return SUCCESS;} else {return INPUT;}}}4.在工程的WebRoot目录下创建login.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Login</title></head><body><!-- 创建一个登陆表单 --><s:url action="login"id="loginUrl"></s:url><s:form action="%{loginUrl}"method="post"><s:textfield label="Name"name="name"/><s:password label="Password"name="password"/><s:submit></s:submit></s:form></body></html>5.在工程的WebRoot目录下创建welcome.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Welcome</title></head><body><h1>登陆成功</h1></body></html>现在就来验证一下我们的登陆页面吧,选择工具栏中的按钮,在弹出的对话框中单击project后的矩形选框,从下拉列表中选择你创建的工程,然后单击Add,从弹出的对话框中单击sever后的矩形选框,从下拉列表中选择tomcat7,单击Finish。

STRUTS2入门教程(全新完整版)

一、发展历史及简介发展历史Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages、Servlet、标签库以及面向对象的技术水准。

Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。

这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。

这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。

当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。

同样,软件工程师使用Struts为业务应用的每一层提供支持。

它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。

我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。

如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。

早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部分,Model部分是业务与应用领域(Business domain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,struts业务流程控制(Flow Control)之处,View部分则负责展现资料、接收使用者输入资料。

在Java应用中,JFC/Swing、AWT、JSP皆是可用作View的技术规格,而JavaBean与Enterprise JavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当的分割,Model部分程序代码可在不同使用者接口外观的应用程序中重复使用。

随着JSP与Servlet技术大量应用于以Web为基础的应用程序,Java开发人员群体认为应以较佳的模式以提升Web应用程序的可维护性与重复使用性。

struts2入门教程一(环境搭建,基本案例实现)CSDN

Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。

再对起进行修改。

删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。

01、struts2(Struts2开发入门 、常用配置、参数传递) - 副本

1. Struts2简介1.1. 什么是Struts21.1.1. Struts2的概念Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。

轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。

Struts2实现了MVC,满足了MVC设计思想。

在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。

作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。

这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。

Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。

重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。

1.1.2. 什么是MVCMVC是代码的分层思想,是软件设计领域经典的设计模式。

它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。

1、M-Model 模型模型(Model)的职责是负责业务逻辑。

包含两层:业务数据和业务处理逻辑。

比如实体类、DAO、Service都属于模型层。

2、V-View 视图视图(View)的职责是负责显示界面和用户交互(收集用户信息)。

属于视图的组件是不包含业务逻辑和控制逻辑的JSP。

3、C-Controller 控制器控制器是模型层M和视图层V之间的桥梁,用于控制流程。

比如:在Servlet项目中的单一控制器ActionServlet。

采用技术选型文档(基本)

一、开发语言:1、Java语言2、C#语言二、数据库:1、OracleOracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。

因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。

2、MS Sql ServerSQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。

SQL Server近年来不断更新版本,1996年,Microsoft推出了SQL Server6.5版本;1998年,SQL Server7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是SQL SERVER2008。

三、基本技术构架:1、Struts2框架Struts2是Struts的下一代产品,是在struts和WebWork的技术基础上进行了合并的全新的Struts2框架。

其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。

Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts2可以理解为WebWork的更新产品。

虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。

2、SpringMVC框架Spring框架提供了构建Web应用程序的全功能MVC模块。

使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
先加载struts-default.xml,再加载其他配置文件
STRUTS.XML的基本结构
如何定义RESULT
Result用于封装Action到View的跳转逻辑 Result的类型 名字 说明 dispatcher 用来转向页面,通常处理JSP(默认值) chain 用来处理Action链 redirect 重定向到一个URL redirectAction 重定向到一个Action freeMarker httpHeader stream velocity xslt plainText 处理FreeMarker模板 用来控制特殊的Http行为 向浏览器发送InputSream对象,通常用来处理文件下载 处理Velocity模板 处理XML/XLST模板 显示原始文件内容,例如文件源代码
使用STRUTS2的步骤 使用 开发的5个步骤
准备Struts2环境
1.1 Struts2至少需要7个jar文件(struts2-core-xx.jar 、freemarker-xx.jar 、commonslogging-xx.jar 、ognl-xx.jar 、xwork-xx.jar 、commons-fileupload-xx.jar、struts2spring-plugin-xx.jar ),将这些文件放在工程构建路径下 1.2 在web.xml添加如下信息: <filter> <filter-name>struts2</filter-name> <filterclass>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filterclass> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
如何定义STRUTS2的配置文件
Struts2配置文件的种类
struts.xml:主要对Action、Result、拦截器等进行配置。 struts.properties:用于整个Web应用程序范围的配置。
Struts.xml的位置
Struts2默认的配置的文件是struts.xml,只需位于src下即可 在使用多配置文件或其他位置的配置文件时,需要在web.xml中添加 FilterDispatcher的初始化参数
<init-param> <param-name>config</param-name> <param-value>struts-default.xml, struts-demo.xml, /WEB-INF/struts-demo2.xml </param-value> </init-param>
Struts2配置文件的加载顺序
理解OGNL
OGNL:Object Graph Navigatio Lanaguage(对象图导航语言),是一种强 大的表达式语言
通过简单一致的表达式语法来读取和设置Java对象的属性值 调用对象的方法 遍历整个对象的结构图 实现字段类型转换
OGNL的基本语法
属性名:#key,#key.属性(省略#,则使用根对象ValueStatck) 方法调用:#manager.方法 集合调用:#arr[0], #list[0]
<init-param> <param-name>config</param-name> <param-value>struts-default.xml, struts-demo.xml, /WEB-INF/struts-demo2.xml </param-value> </init-param>
Struts2配置文件的加载顺序
STRUTS2框架简介
• Struts2使用了 使用了WebWork的设计核心 的设计核心XWork 使用了 的设计核心 • Struts2 = Struts Core+XWork
STRUTS2框架简介源自•Struts2框架是第二代实现 框架是第二代实现MVC模式的 模式的web开发 框架是第二代实现 模式的 开发 框架, 使用拦截器处理用户请求, 框架 使用拦截器处理用户请求,
如何定义STRUTS2的配置文件
Struts2配置文件的种类
struts.xml:主要对Action、Result、拦截器等进行配置。 struts.properties:用于整个Web应用程序范围的配置。
Struts.xml的位置
Struts2默认的配置的文件是struts.xml,只需位于src下即可 在使用多配置文件或其他位置的配置文件时,需要在web.xml中添加 FilterDispatcher的初始化参数
1.
#employees.{#this.salary>3000}
</listener>
2.在web.xml中添加Context Param:
<context-param> <param-name>contextConfigLocation</paramname> <paramvalue>classpath:applicationContext.xml</paramvalue> </context-param>
先加载struts-default.xml,再加载其他配置文件
STRUTS2的体系结构
STRUTS2中的数据模型
ACTIONCONTEXT与VALUESTATCK
ActionContext是Struts2中OGNL的上下文环境,它维护着一个Map结构
ValueStatck是一种对堆栈结构,它代表与当前请求相关的虚拟数据模 型,Action正在位于ValueStack中
创建模型(M) 创建jsp页面(V) 创建Action(C) 编写配置文件struts.xml(放在src下)
STRUTS2与SPRING集成的步骤 与Spring集成的步骤
1. 在web.xml中添加Listener:
<listener>
<listener<listener-class> org.springframework.web.context.ContextLoaderListener </listener</listener-class>
如何定义ACTION
Action代表一个用户操作,是控制器的组件之一 定义要点:
建立一个普通的Java类,类名以Action结尾,如 AddAction 在Action中定义属性,这些属性与页面表单元素相对应 在Action中定义用户操作方法,原型如下 public String execute() { } 或者 public String toMethod() { } public String doMethod() { } 在Action中这些方法可以有多个
STRUTS2工作原理
STRUTS2与STRTUS1的对比
Struts2中的Action可以是一个只包含 execute方法的普通JavaBean Struts2通过Action属性封装表单参数 Struts2无需依赖于Servlet API,从未允许 Action脱离Web容器运行 Struts2为每个请求产生一个Action实例, 因此不存在线程安全问题 Struts2使用OGNL代替EL
在ACTION中如何传递数据
在Action中获取ActionContext对象 ActionContext ac = ActionContext.getContext(); 通过Request传递数据 ac.put(key,value); 通过Session传递数据 ac.getSession().put(key,value);
OGNL中的集合操作
创建
1. 2.
创建列表: #{‘a’,’b’,…} 创建Map: #{“key”:value , ….}
投影:在一个集合中对每一个元调用相同的方法或者抽取相同的属性,并将结 果保存为一个新的集合
1. 2.
#bean.{attribute} 使用#this来引用迭代中的当前元素
选择:使用表达式从集合中选取某些元素,并将结果保存为一个新的集合
如何调用STRUTS2的ACTION
Struts2中Action默认的扩展名为.action
<form id=“form1” action=“add.action”> Struts2会调用Action中默认的执行方法,即 execute()
调用Action中的非默认执行方法
<form id=“form1” action=“add!doAdd.action”>
相关文档
最新文档