struts2的校验可以用两种方式实现:
一、java代码实现:
以action类实现ActionSupport的方式实现代码校验,struts框架会调用重写的validate()方法对所有的action方法进行校验过滤。代码片段如下:
package test;
import com.opensymphony.xwork2.ActionSupport;
public class ValidateAction extends ActionSupport {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String test(){
return "success";
}
public String execute(){
return "success";
}
public void validate() {
// TODO Auto-generated method stub
if(id == null){
this.addFieldError("id", "id不能为空");
}
if(name == null || name.trim().length() == 0){
this.addFieldError("name", "name不能为空");
}
}
}
jsp页面片段如下:
<s:fielderror />
<form action="/validate.action">
<input type="text" name="id" /></br>
<input type="text" name="name" /></br>
<input type="submit" value="提交"/>
</form>
其中<s:fielderror />负责将validate()方法中的错误信息列表进行输出,这样就完成了整个验证流程。
如果仅仅只需要实现对execute()方法进行验证,那么只需要实现validateExecute()方法。框架会自动绑定execute()方法进行验证,其他方法则不进行验证。
二、xml配置文件实现:
xml的验证需要为action类建立对应的.xml配置文件,文件命名格式为ActionClassName-validation.xml。以前文所创建的类为例则需要建立ValidateAction-validation.xml文件。
配置文件如下:
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="id">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
<field name="name">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
</validators>
如上配置可以完成前文中validate()方法的实现,其他代码如jsp文件和struts.xml配置则完全相同。
如需实现对action中指定方法的xml校验则需要建立ActionClassName-ActionName-validation.xml的配置文件,其中ActonName为struts.xml中的action的名称。如:
<!-- 首先配置通配符实现url制定方法调用 -->
<action name="validate_*" class="test.ValidateAction" method="{1}">
<result name="success">/page/hello.jsp</result>
</action>
要对test()方法进行校验,校验的文件名则为:ValidateAction-validate_test-validation.xml
对execute()方法进行校验,校验的文件名则为:ValidateAction-validate_execute-validation.xml
这样变实现了对不同action 方法绑定校验。
分享到:
相关推荐
### Struts2实战详解 #### 一、Struts2框架简介与MVC模式解析 **Struts2** 是一个开源的Web应用框架,基于Java语言编写...无论是对于初学者还是经验丰富的开发者来说,掌握Struts2都将对Web开发工作带来极大的帮助。
### 整合Struts_Hibernate_Spring应用开发详解 #### J2EE应用与环境 - **J2EE应用概述** - **J2EE应用的分层模型:** Java EE(J2EE)架构通常采用多层设计模式,主要包括表现层、业务逻辑层和服务层。这种分层有...
OGNL在Struts2中扮演了关键角色,它不仅用于视图层的数据绑定,还在类型转换中起到了重要作用,使得开发者可以方便地处理不同类型的数据。 对于Web项目中的验证,Struts2提供了一套完整的验证框架,允许开发者定义...
在Struts2中,可以通过配置不同的校验器来实现对各种数据类型的校验。 3. **Field Validator**:字段校验器,用于校验表单中的具体字段。每个字段校验器都有特定的类型,如`requiredstring`表示必填字段,`string...
《Struts.2权威指南——基于WebWork核心的MVC开发》是一本深入解析Struts.2框架的经典著作,旨在帮助开发者掌握基于WebWork核心的模型-视图-控制器(Model-View-Controller,简称MVC)架构进行高效、灵活的Java Web...
2. **创建ActionForm**:定义表单字段并实现validate()方法进行数据校验。 3. **编写Action类**:实现业务逻辑,处理ActionForm中的数据。 4. **设计JSP页面**:使用Struts标签库创建用户界面,与ActionForm交互。 5...
- Action类是Struts2中最核心的部分,负责处理具体的业务逻辑。 - 开发者需要在Action类中定义业务逻辑,并返回一个结果字符串来决定下一步的操作。 - **使用ActionSupport进行校验**: - `ActionSupport`是...
### JavaEE企业应用实战-Struts2+Spring3+Hibernate整合开发(第3版)核心知识点解析 #### 一、JavaEE概述与架构 - **JavaEE简介**:JavaEE(Java Platform, Enterprise Edition)是Java平台的企业版,提供了一套...
Struts框架是Java Web开发中的一个关键组件,它属于Java EE(J2EE)平台的一部分,主要用于构建MVC(Model-View-Controller)模式的应用程序。这个框架的主要目的是提高开发效率,提供更好的结构管理和控制流程,...
Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...
6. **资源文件的支持**:Struts2提供了对国际化资源文件的支持,便于多语言应用的开发。 #### Struts2核心组件详解 - **StrutsPrepareAndExecuteFilter**:作为Struts2框架的核心过滤器,它负责初始化框架并处理...
通过本文的学习,我们深入了解了Struts2的安装配置方法以及其在实际开发中的应用。Struts2作为一种成熟的MVC框架,不仅能够极大地提升开发效率,还能帮助开发者构建出高质量的Web应用。在未来的学习和工作中,掌握...
- **Interceptor**:在`package`元素内部,可以定义拦截器或引用拦截器堆栈,拦截器是Struts2中非常重要的组件,用于在Action执行前后进行一系列的前置和后置处理操作,比如登录验证、数据校验等。 - **Result ...
同时,需要在Action类中添加对应的验证码属性和验证方法,以便在用户提交表单时进行验证码的校验。 在前端视图层,Jcaptcha4Struts2会提供一个标签来生成验证码图像,并且会有一个隐藏字段用来存储验证码的服务器端...
因此,在实际应用中,应确保对用户输入进行严格的校验和过滤,或者使用Struts2的安全插件来防止OGNL注入。 五、总结 OGNL在Struts2中扮演着关键角色,它简化了数据绑定和对象交互。然而,开发者也需要注意其潜在的...
- **应用场景**:在Struts2中广泛应用于表单填充、页面展示、动态属性设置等方面。 ##### 3.3 标签库 - **介绍**:Struts2提供了丰富的标签库,用于简化页面开发工作。 - **常见标签**:包括`<s:textfield>`、`...
### Struts2框架基础知识点详解 #### 一、Struts2框架概述 - **定义**:Struts2是由Apache软件基金会支持的一个开源框架,用于JavaEE应用的开发。它是Struts1的下一代版本,采用了MVC(Model-View-Controller)架构...
20. **输入校验**:可以使用XML配置进行Action级别的校验,也可以对每个方法进行细粒度校验。 21. **国际化**:Struts2支持基于XML配置的国际化,通过资源文件(如message.properties)实现不同语言的显示。 22. *...