读书人

struts2印证框架之validate()方法

发布时间: 2012-11-01 11:11:31 作者: rapoo

struts2验证框架之validate()方法
如果你对客户端的js校验不放心的话,不妨使用服务器端校验。该校验是无法绕过的。struts2提供的验证框架可以实现这种功能。struts2提供两种校验方法:一种是写XML校验。另外一种是在action中写validate方法。这个例子将会用到后者。
1、包结构:


2、源代码:
UserAction.java

package action;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport{private String name;private String password;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public void validateSave(){if("whatisjava".equals(name)){this.addFieldError("dataErr", "该名称已存在");}}public String save(){System.out.println("save");return "success";}}

struts.xml:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="struts" extends="struts-default" namespace="/"><action name="save" method="save"><result name="success">index.jsp</result><result name="input">index.jsp</result></action></package></struts>    

index.jsp:
<%@ page pageEncoding="UTF-8"%><%@taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>validate</title></head><body><h1>tstruts2的validate()方法</h1><li>继承ActionSupport类</li><li>遵循以下命名规则:validate+方法名。<br>   例如:validateSave(); save()为页面要访问的action执行的方法名称。</li><li>在校验方法中添加验证信息:this.addFieldError("dataErr", "该记录已存在。");</li><li>页面上添加struts2标签:s:fielderror key="dataErr"   其中dataErr为校验方法中的fieldError名。</li><hr>下面做一个测试,当用户输入的用户名为whatisjava时候将视为数据已存在。表单不会被提交。<br /><form action="save.action"><s:fielderror key="dataErr"></s:fielderror><br>用户名:<input type="text" name="name"><br>密  码:<input type="password" name="password"><br><button type="submit">提交</button></form></body></html>

读书人网 >软件架构设计

热点推荐