Struts2 表单重复提交问题

时间:

# 表单重复提交问题 ## 出现表单重复提交的情况: 1.若刷新表单页面,再提交表单不算重复提交 2.在不刷新表单页面的前提下: (1)多次点击提交按钮 (2)已经提交成功,按“后退”之后再点击提交 (3)在控制器相应页面的形式为转发情况下,若已经提交成功,然后点击刷新 3.注意: (1)若使用的是redirect的相应类型,已经提交成功后,再点击刷新,不是重复提交 #...



Struts2 验证器

时间:

# Struts2 验证 ## 声明式验证 ### 基于XWork Validation Fremework的声明式验证。 在一个xml文件里对验证程序应该如何工作作出声明即可,需要声明的内容包括: 1.哪些字段需要进行验证 2.使用什么验证规则 3.在验证失败时的错误信息 1.基于字段验证 (1)在Action包下创建ActionName-validation.xml ...



类型转换与复杂属性&集合

时间:

# 类型转换与复杂属性&集合 类型转换与复杂属性配合使用: Form标签的name 属性可以被映射到一个属性的属性: Department.java: ```java Private String id; Private String name; Private Manager manager; ``` Manager.java: ```java Private S...



Struts2 I18N

时间:

# I18N Struts2的国际化是建立在Java国际化基础上。Struts2框架会根据请求中包含的Locale加载对应的资源文件,通过程序代码取得该资源文件中指定key对应的消息。 1.如何配置国际化资源文件 (1)Action范围 在Action类所在包下创建名为:ActionName_language_country.properties文件 (2)Package范围 在...



Struts2类型转换

时间:

# Struts2类型转换 从HTML表单到一个Action对象,类型转换是从字符串到非字符串。在Struts2中,把请求参数映射到action属性的工作由Parameters拦截器负责。如果拦截失败: 1.若Action类没有实现ValidationAware接口: Struts在遇到类型转换错误时会继续调用action方法。 2.若Action类实现ValidationAware...



PrepareInterceptor随手笔记

时间:

# 使用ParamsPrepareParamsStack的运行流程 1.paramsPrepareParamsStack和defaultStack一样都是拦截器栈,可以在Struts配置文件中通过以下方式修改使用的默认的拦截器栈。 ```xml ``` 2.ParamsPrepareParamsStack拦截器流程 Params -> modelDriven -> params...



Struts2 声明式异常处理

时间:

Exception-mapping:配置当前action的声明式异常处理 Exception-mapping元素有两个属性: Exception:指定需要捕获的异常类型 Result:指定一个响应结果,该结果将在捕获到指定异常时执行,既可以来自当前action声明,也可以来自global-result声明。 出现异常时,值栈栈顶将存在ExceptionHolder对象,有两个属性:e...



Struts2中关于OGNL的小笔记

时间:

# OGNL Request对象由Struts2重新定义(Struts.dispatcher.StrutsRequestWarpper)。值由值栈取出,并非从请求域取出。 值栈(ValueStack):贯穿整个Action的生命周期(每个Action类的对象实例都有一个ValueStack对象),相当于数据中转站,在其中保存当前Action对象和其他相关对象。Struts框架把Value...





Shring everything


Others