Struts2——(6)表单校验

一、表单校验

js,jquery是客户端校验,今天要说的是客户端校验。

禁止js,或者机器代码会破坏客户端校验,所以客户端校验相对不安全。

服务器端校验是基于java代码在服务器端进行校验,特点是相应慢,但是相对安全。

二、Struts2中的表单校验

(1)自己写validate方法

第一步:Action继承ActionSupport

第二步:写public void validate();方法

package xsyu.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private String name; private String pwd; //表单的数据检查 public void validate(){ if("".equals(name) || name == null){ this.addFieldError("name", "姓名不能为空!"); } if("".equals(pwd) || pwd == null){ this.addFieldError("pwd", "密码不能为空"); } //底层是一个集合,如果判断该集合中有内容就不执行execute方法。 } public String execute(){ if("scott".equals(name)&&"1234".equals(pwd)){ return "success"; } return "login"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } 
默认返回的result是“input"

<package name="pack1" extends="struts-default"> <action name="login" class="xsyu.action.LoginAction"> <result name="success" type="dispatcher">/ok.jsp</result> <result name="login" type="redirect">/index.jsp</result> <result name="input">/index.jsp</result> </action> </package>
用struts标签在页面显示

<s:fielderror></s:fielderror>
运行结果:

Struts2——(6)表单校验_第1张图片

我们在页面加上<s:debug>标签后会发现多了一个errors标签

Struts2——(6)表单校验_第2张图片

我们可以这样取出错误信息。

姓名:<input type="text" name="name"/>${errors.name}<br> 密码:<input type="password" name="pwd"/>${errors.pwd }
结果:

如果我的Action中有多个业务方法怎么办,这时候给需要的方法添加validate,比如给add()方法添加则这样写 public void validateAdd(){ ...}

(2)使用XML配置校验(功能和上面的一样,一般不推荐使用)



你可能感兴趣的:(struts,ssh,表单校验)