*一.*在struts2中Action类的作用?
1.定义了5个字符串常量
public static final String SUCCESS = "success";
public static final String NONE = "none";
public static final String ERROR = "error";
public static final String INPUT = "input";
public static final String LOGIN = "login";
2.定义处理用户请求的execute抽象方法
二.ActionSupport类的作用?
ActionSupport类是struts2中的一个工具类,它已经实现了Action接口。除此之外,它还
实现了Validateable接口,提供了数据校验,国际化功能。通过继承该ActionSupport类,
可以简化Struts 2的Action开发。
*三.*打印验证的方法有两种:
A.<s:fielderror />:这是强制打印
B.如果用struts2的标签提交它会自动打印。
*四.*自定义类型转换器步骤:
<1>在src目录下建立一个xwork-conversin.properties文件
里面主要包含:包名.属性名=包名.类型转换器的类名
<2>写一个属性类和一个类型转换器的类
<3>在页面定义一个文本属性,里面输入符合类型转换器类厘米的格式即可。
*五.*struts2国际化步骤:
第一步、在src文件夹中加入struts.properties文件,内容如下:
struts.custom.i18n.resources=globalMessages
第二步、在src文件夹中加入globalMessages_en_US.properties文件,
内容如下:
HelloWorld=Hello World!
第三步、在src文件夹中加入globalMessages_zh_CN.properties文件(
注意转码),内容如下:
user=\u7528\u6237\u540d
第四步,在jsp页面上引用。
第五步,运行。
*六.*国际化控件制作:
第一步.写一个类,里面用集合保存java.util.Locale中的常量:
内容如下:
public class Language {
Map<String,Locale> map=new HashMap<String, Locale>();
public Map<String,Locale> getMap(){
map.put("英文", Locale.US);
map.put("中文", Locale.CHINA);
return map;
}
{color:#000000}}第二步.在struts.xml文件中配置一个完整的Action。
第三步.在jsp页面上引用集合类中的集合
如:
<s:select name="request_locale" label="请选择语言" labelposition="top" value="#session['WW_TRANS_I18N_LOCALE']"
list="#Language.map" listKey="value"
listValue="key" onchange="Language();" />
注:select的name是规定的(request_locale),这是标准不可以改变。
#session['WW_TRANS_I18N_LOCALE']是取到session的值,也就是你选中的值。
*七.*struts2常量配置的地方(struts2搜索顺序如下:):
1.struts.xml
2.struts.properties
3.web.xml配置如:
*八.*什么是拦截器?
拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,
进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。
*九.*自定义拦截器:
第一步:写一个类继承AbstractInterceptor。覆盖intercept()方法
第二步:在intercept里面写一些要执行的内容,在调用invoke();
内容如下:String result=actionInvocation.invoke();
第三步:在struts.xml中配置
如:
<interceptors>
<interceptor name="interceptors" class="包名.类名"/>
<interceptor-stack name="custom-stack">
<interceptor-ref name="interceptors" />
</interceptor-stack>
</interceptors>
第四步:在struts.xml中的Action中引用
如:<interceptor-ref name="custom-stack"></interceptor-ref>
第五步:运行;
*十.*指定方法拦截器:
第一步:写一个类继承MethodFilterInterceptor。覆盖doIntercept()方法
第二步:在doIntercept()里面写一些要执行的内容,在调用invoke();
内容如下:String result=actionInvocation.invoke();
第三步:在struts.xml中配置
<interceptors>
<interceptor name="interceptorsFilter" class="com.interceptors.InterceptorsFilter"/>
<interceptor-stack name="custom-stack">
<interceptor-ref name="interceptorsFilter">
<param name="includeMethods">拦截的方法,多个方法用逗号分开</param>
<param name="excludeMethods">拦截出这个方法以为的方法</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
第四步:在struts.xml中的Action中引用
如:<interceptor-ref name="custom-stack"></interceptor-ref>
第五步:运行;
十一.Struts 2支持以下几种表达式语言:
1. OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;
2. JSTL(JSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;
3. Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性;
4. Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
1. 支持对象方法调用,如xxx.doSomeSpecial();
2. 支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME;
3. 支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;
4. 访问OGNL上下文(OGNL context)和ActionContext;
5. 操作集合对象。
分享到:
相关推荐
### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...
一、准备工作及实例 3 1.解压struts-2.1.6-all.zip 3 2.六个基本包 3 3.初识struts2配置文件 4 ... 下面对struts2的基本执行流程作一简要说明,此流程说明可以结合官方提供的struts2结构图来看: 60
总结来说,Struts2的这些漏洞强调了在开发过程中需要严格的安全实践,包括对用户输入的充分验证、避免使用可能导致RCE的不安全配置,以及及时更新框架到最新安全版本。对于使用Struts2的开发者来说,了解这些漏洞...
在深入探讨Struts2的加载过程前,我们首先简要回顾一下Struts2框架的基本概念。Struts2是Apache组织下的一个开源Web应用框架,它继承了Struts1的优良特性,并在此基础上进行了大量改进,引入了拦截器、类型转换、...
### Struts2、JSON、Gson、jQuery与Ajax简单应用详解 #### 一、概述 在Web开发领域,Struts2、JSON、Gson、jQuery和Ajax是几个非常重要的技术,它们各自扮演着不同的角色,但又能够很好地协同工作来构建高效、交互...
总结来说,通过Struts2和JSON插件,你可以方便地在服务器端处理业务逻辑,并以JSON格式返回数据给AJAX请求。这种方式极大地提高了Web应用的响应速度和用户体验,因为数据的更新无需刷新整个页面。同时,利用JavaBean...
本篇将深入探讨"Struts2标签介绍3"这一主题,涵盖`if`标签和`iterator`标签,并对整个Struts2标签库进行简要总结。 首先,我们来看`if`标签。在传统的JSP中,我们通常使用JSTL的`<c:if>`标签来进行条件判断。而在...
### Struts2讲义知识点概览 #### 第一章:Struts是否过时? ##### Struts历史发展过程 ...以上内容仅是对Struts 2讲义的简要总结,深入学习和掌握Struts 2框架,需要结合实际项目经验和持续的实践探索。
在深入探讨如何在Struts2框架中获取`HttpServletResponse`对象之前,我们先来简要回顾一下Struts2框架的基本概念及其与传统Struts1.x的区别。 #### Struts2框架简介 Struts2是Apache软件基金会的一个开源项目,它...
在探讨Struts2与Spring框架的整合之前,我们先简要回顾一下Struts2框架的由来与特性。Struts2作为Struts1的升级版,借鉴了WebWork框架的成功之处,特别是在WebWork2之后的革新中汲取灵感,引入了插件机制、拦截器、...
下面简要介绍这些模块如何使用Hibernate和Struts进行实现: 1. **数据访问层**:使用Hibernate实现商品信息、用户信息等数据的持久化操作。 2. **业务逻辑层**:利用Struts框架的Action类处理用户请求,如商品搜索...
在本教程的最后部分,我们将对整个学习过程进行总结,并对Struts框架的学习提出进一步的方向和建议。 #### 十八、技术背景 本章节将从技术角度出发,对本教程的撰写背景和技术细节进行说明。 #### 十九、关于作者 ...
- **12.1 介绍**:简要回顾Struts2与Struts1的区别,以及Struts2相较于其他框架的优势。 - **12.2 下载Struts2开发包**:指导读者如何获取最新的Struts2开发包,并进行安装设置。 - **12.3 开发第一个Struts2应用...
本文档提供了经过验证的 hibernate3、struts2 和 sping1 的下载链接,并对这三个框架的基本概念及其在软件开发中的应用进行了简要介绍。这将有助于开发者更好地理解这些技术的特点和优势,以及如何有效地利用它们来...
- 这一章节简要地介绍了Struts的发展历程及其在Web开发领域的重要性。 **2.2 为什么我们需要Struts** - **2.2.1 退一进三** - 解释了传统的Web开发方式存在的问题,例如代码重复、难以维护等。 - **2.2.2 进入...
这部分内容简要介绍了Struts框架的背景和发展历程,以及它在Java Web开发领域的重要地位。 ##### 2.2 为什么我们需要Struts 这部分详细解释了Struts框架出现的原因,以及它如何解决了传统Java Web应用开发中的常见...
在深入探讨Struts框架中的数据源配置之前,我们先来简要回顾一下Struts框架的基本概念。Struts是一个开源的MVC(Model-View-Controller)框架,主要用于Java Web应用程序的开发,它能够帮助开发者构建出结构清晰、...
- 在这一节中,作者对Struts框架的历史背景、开源意义以及名称由来进行了解释,并简要介绍了本书的主要内容。 #### 深入Struts架构 ##### 2.1 随便谈谈 - 这部分作为过渡章节,引导读者逐步进入Struts框架的核心...
在深入探讨Struts2配置的关键知识点之前,我们首先简要回顾一下Struts2框架的基本概念。Struts2是Apache软件基金会开发的一个开源Web应用框架,它遵循MVC(Model-View-Controller)设计模式,旨在简化Java Web应用...
总结来说,Struts1.2与Commons-Fileupload的结合使用,提供了一个简单而有效的文件上传解决方案。然而,这只是一个基本的实现,实际项目中可能还需要处理更多细节,比如错误处理、异常捕获、文件重命名策略、存储...