1,xwork校验框架分为,属性优先,校验器优先:
思路:先写上校验器,然后写属性.
写法:<validator type="requiredstring">
<param name="fieldName">username</param>
<message>username invalide</message>
</validator>
<validator type="stringlength">
<param name="fieldName">username</param>
<param name="minLength">6</param>
<param name="maxLength">10</param>
<message>username length should be 6-10</message>
</validator>
2,ognl标签库
<s:form action="register" theme="simple">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:password name="repassword" label="repassword"></s:password>
<s:textfield name="age" label="age"></s:textfield>
<s:textfield name="graduation" label="graduation"></s:textfield>
<s:textfield name="birthday" label="birthday"></s:textfield>
</s:form>
不仅内置了信息输出的功能,还能保存之前输入的信息.
3,struts2如何判断输入信息出错的?
ActionSupport类中有
bool hasActionError()
bool hasFieldError()
bool hasErrors()
4,属性驱动的Action:把对象的属性写在Action中
模型驱动的Action:直接把类写在Action中,需要实现ModelDriven<T>接口
Action不是单实例的,一个请求实例化一次;serverlet是单实例的.
Preparable接口,预处理跟逻辑无关的准备工作.
5,国际化 internationalization
获得系统提供的语言种类
Locale[] locals=Locale.getAvailableLocales();
locale[i].getDisplayCountry()
locale[i].getCountry()
获取国际化相关的信息
Locale locale=Locale.US;
ResourceBundle bundle=ResourceBundle.getBundle("helloworld",locale);
bundel.getString("hello");
helloworld-en-US.properties
helloworld-zh-CN.properties
获得动态指定的信息
MessageFormat.format("hello",new Object[]{"中国"}) 输出hello:中国
getText( key,value)
原理:浏览器发送请求的时候发送了语言.
6.过滤器和拦截器原理
过滤器:实现Filter接口
拦截器:Intercepor接口,struts的核心,
init()
String intercept(ActionInvocation invacation)
destory()
第一步:定义一个拦截器类,必须实现Interceptor接口.
invoke() 调用下一个拦截器
第二步:申明拦截器
在配置文件中申明:
<interceptors>
<interceptor name="a" class=""></interceptor>
</interceptors>
第三步:使用拦截器
在Action的result后使用
<interceptor-ref name="a"></interceptor-ref>
拦截器在服务器启动前init()
执行自己的方法,执行Action的方法
注意:引用自己的拦截器在先,然后再引用struts默认的拦截器.defaultStack
使用拦截器中的参数值:<param name="hello">world</param>
在类中增加一个属性,即可读取value.
实现拦截器也可继承AbstractIntercptor,重写intercept()方法即可.
多拦截器执行顺序:后进先出.
对方法的拦截器和对类的拦截器
MethodFilterInterceptor
成员excludeMethods 不拦截的方法
分享到:
相关推荐
- **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 **3.4 请求转发与重定向** - **转发**:Action 的 execute 方法返回一个字符串,根据这个字符串找到对应...
### Struts学习笔记详解 #### 一、Struts框架概览与编码设置 在学习Struts框架时,首要关注的是其编码配置。如代码片段所示,`struts.i18n.encoding`常量被设置为`UTF-8`,这确保了国际化(I18N)资源文件的正确...
在Struts2中,拦截器扮演着至关重要的角色,它们是实现业务逻辑和控制流程分离开来的重要组件。本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过...
2. 拦截器:拦截器是Struts2的核心特性,它们在Action执行前后按顺序执行,实现如日志、权限检查、事务管理等功能。自定义拦截器可以扩展框架功能。 四、Action与结果 Action类是Struts2处理请求的核心,每个Action...
13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...
此外,Struts2还支持动态方法调用、国际化、主题和模板、AJAX集成等特性,为开发者提供了全面的Web应用开发解决方案。在实际开发中,熟练掌握Struts2的各种机制和最佳实践,能提高开发效率和代码质量。
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...
在本篇“Struts2学习笔记十一”中,我们将深入探讨Struts2的核心拦截器及其应用。 **1. 拦截器的概念** 拦截器是AOP(面向切面编程)的一部分,在Struts2中,它们作为一系列可插入的处理链,可以在Action执行前后...
总的来说,张龙圣思园的Struts2学习笔记是全面了解和掌握Struts2框架的宝贵资源,无论你是初学者还是有经验的开发者,都能从中受益。它会帮助你深入理解Struts2的工作原理,掌握其核心特性和最佳实践,从而提升你的...
通过深入学习 Struts2 的拦截器机制,开发者可以更好地理解框架的工作原理,并且能够定制化地处理业务需求,提高应用程序的效率和安全性。同时,这也为团队协作和代码规范提供了有力的支持。因此,熟悉并熟练运用...
### Struts2 拦截器 (Interceptor) 学习笔记 #### 一、拦截器的概念及作用 在Struts2框架中,拦截器扮演着非常重要的角色,它与Java Web开发中的过滤器(Filter)有相似之处但又有显著区别。拦截器的主要作用在于...
### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...
在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...
在本篇学习笔记中,我们将重点讨论Struts2框架中的Action和拦截器(Interceptor)如何处理请求参数。 首先,Struts2的核心是拦截器机制,它允许我们在Action执行前后插入自定义的处理逻辑。在`struts-default.xml`...