Struts2 validate校验
一般的,用户注册的时候,我们需要校验一些用户提交过来的参数。
一般有两道屏障,一是在前台页面上使用js进行验证,直接杜绝了不正常信息的提交。二是将提交过来的信息进行验证,不通过则返回注册页面并显示错误信息,我们这里介绍的就是在action中使用validate方法实现数据校验。
action中是继承自ActionSupport类,ActionSupport实现了Validate接口,有一个空的validate方法。
在action中只需要重写一下validate方法就好了。运行程序的时候,会先执行validate方法然后执行execute()方法。
在validate方法中,有aaarticlea/png;base64,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" alt="" />这三种增加ActionError的方法,一般我们使用第一中和第三种,一旦action中存在error,就表示校验未通过,action自动返回INPUT,可以在INPUT定义的result页面中接受错误提示。
使用ActionError:
使用addActionError方法增加错误进入ActionError中,ActionError是List格式
在jsp中使用<s:actionerror />展示错误信息
regist.jsp:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'regist.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- <h1><font color="blue">注册信息</font></h1>
- <s:actionerror cssStyle="color:red;"/>
- <form action="regist.action" method="post">
- username:<input type="text" name="username" size="20"/><br/>
- password:<input type="password" name="password" size="20"/><br/>
- repassword:<input type="password" name="repassword" size="20"/><br/>
- sex:<input type="text" name="sex" size="20"/><br/>
- age:<input type="text" name="age" size="20"/><br/>
- birthday:<input type="text" name="birthday" size="text"/><br/>
- graduation:<input type="text" name="graduation" size="20"/><br/>
- <input type="submit" value="submit"/>
- </form>
- </body>
- </html>
struts.xml:
- <action name="regist" class="com.shensiyuan.struts.action.RegistAction">
- <result name="success">/registResult.jsp</result>
- <result name="input">/regist.jsp</result>
- </action>
RegistAction.java:
- package com.shensiyuan.struts.action;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import com.opensymphony.xwork2.ActionSupport;
- public class RegistAction extends ActionSupport {
- private String username;
- private String password;
- private String repassword;
- private String sex;
- private int age;
- private Date birthday;
- private Date graduation;
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getRepassword() {
- return repassword;
- }
- public void setRepassword(String repassword) {
- this.repassword = repassword;
- }
- public String getSex() {
- return sex;
- }
- public void setSex(String sex) {
- this.sex = sex;
- }
- public int getAge() {
- return age;
- }
- public void setAge(int age) {
- this.age = age;
- }
- public Date getBirthday() {
- return birthday;
- }
- public void setBirthday(Date birthday) {
- this.birthday = birthday;
- }
- public Date getGraduation() {
- return graduation;
- }
- public void setGraduation(Date graduation) {
- this.graduation = graduation;
- }
- public String execute(){
- return SUCCESS;
- }
- @Override
- public void validate(){
- /**
- * 字符串使用正则验证,3步:
- * 1、将string变为正则对象 Pattern p1 = Pattern.compile(reg1);
- * 2、Matcher m = p1.matcher(username);
- * 3、 boolean b = m.matches();
- * 4这等价于前面3步: boolean b = Pattern.matches("a*b", "aaaaab");
- */
- String reg1="^[0-9a-zA-Z]{4,8}$";
- String reg2="^(wo)?man$";
- // String reg3="^([01]\\d\\d\\d\\|[2][0]\\d\\d)-([0][1-9]|[1][0-2])\\-([0-2][0-9]|[3][01])$"; 使用下面的方法是用正则,不需要将正则的String字符串前后加//
- //System.out.println(username);
- boolean usn=Pattern.matches(reg1, username);
- boolean ps=Pattern.matches(reg1, password);
- boolean reps=password.equals(repassword);
- boolean sx=Pattern.matches(reg2, sex);
- boolean ag=(age>0&&age<=100);
- boolean tm=false;
- if(birthday!=null&&graduation!=null){
- Calendar bir=Calendar.getInstance();
- bir.setTime(birthday);
- Calendar gra=Calendar.getInstance();
- gra.setTime(graduation);
- tm=(bir.before(gra));
- }
- if(!usn){
- this.addActionError("username should size in four to eight!");
- }
- if(!ps){
- this.addActionError("password should size in four to eight!");
- }
- if(!reps){
- this.addActionError("repassword should be same as password!");
- }
- if(!sx){
- this.addActionError("sex should be man or woman");
- }
- if(!ag){
- this.addActionError("age should between zero and hundred!");
- }
- if(!tm){
- this.addActionError("if exist,birthday shoule before graduation!");
- }
- }
- }
registResult.jsp:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'registResult.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- username:<s:property value="username"/><br/>
- password:<s:property value="password"/><br/>
- repassword:<s:property value="repassword"/><br/>
- sex:<s:property value="sex"/><br/>
- age:<s:property value="age"/><br/>
- birthday:<s:property value="birthday"/><br/>
- graduation:<s:property value="graduation"/><br/>
- </body>
- </html>
一组效果图:
aaarticlea/png;base64,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" alt="" />aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWwAAAEECAIAAACDWpnZAAAYV0lEQVR4nO2dTcgk13WGa2H4FrMIAs9KCCFEVkLUgLUIESJIC20EQwSCAc8UthEECSIwgmxEiJCCELXJSobZBC8m1kRogguEDB5nsEDgkYy8EGpQsD2bzMITKZkEI/C3O1lUdfX9Offeqq6u7rr9PQ+16K669XvOffv+VJ9TSJjfXpPzhRSFnPtL+c03kYIbmkqKYr2Ushq5S9V0K1e1slItKY1xxso9+GevG1vNAispC3vTwMU7hXmp/tYk5u5lPXp3gINThDb88eedgrTLyYNy7bfpwy1LRE7l5QcQEYB5CYqInMq1S3Ji1p9z8vrHicMtSkTuXbOvf6tKnsQSkWkLIgI5EhYRERH5+DW7Hp7IizfkNFx+uIjssO6FauPrj4bbETO1RBAROHskREREPr9q92uekM/+KCJSTauEc4vI/eteMwQRAZiBtIiIyN0bygjrwkXk87eiEsCYCMCOGCQiInLvpjz1nHxu9GQWLiKnN7rPzz8/qZInQUTgjDNURHwmikiPOYzy4ofdyuTAat0Pt4QGVtu2xgNy80bs7NOhOwNnnEEicu2SPPOq3PoiNqTassXszLWLijSoInL16TEiIlIV8ujrgQKMiQDsiEEi8uJJ5+Unfybfez9WcgsRqcuhIqKWjIhI/YRcu4eIAMzLABG5LQ8Zjr55QUNjCxF5xXgf7J/+o1upishbj21WXrvfnzJYw2/+TE5DBXYnIknufSzPPShFIcWJ1J+P3h1g4aRFxPml3dRejdEicl8uGgfvBUoVkUorGX/tPVhgVyJyKq88Ihf/QX71+66vZ15k1Yjckb86MXYvrcHpni8/kL9+RN5CYiBD0iJijkQkdWG0iNySB/ryD8nt9WpFRMxq/5hsqtsuRKSOXqh1U/YpTm9urv/cn8uvfBHxXpw9X8k94wh3P5SnHlxvPS/NPQHIi5SI2C2Fh15LFB8rIlYz56Lc19a3VfH0hl7ysCJy3Zg/fuBlOdVExD1CId/7QD78W3npPflGRO7JRaOpcnJRkBHIi4SInDbWr+grtxKHGysiZjPHVCjzVbG2Kt56JaBlBxSRO/KkcZDXPxMJiIjck+q8FIWcPCj1xyLrQeJzj8s7H8ndxnon+Ik6PQsGsBwSInLzZaP+nEiT8u5xImJXwkvvdZXn9L783aNuVXztIaPkv0j33uypvHdpByIyYjFOYT6cvgWhi4jI/Q/lO5fky2+UG3/2n+3nxvgrZEVCRMypk64T0WxV97Sq6AT7uHpHqhOlcNVYQw9FIVdv6RJw8qJ2DzOJyB152rjal292q00ROf+8fOGNQ9//vdTPWpJx/b7IPbm0ftSPv6TsBbBYoiJyy6q6F6+JyO5ExB4LKJ6UO84g7np57bYyuPvKA0rJp69qdzGPiNy/LVcety6+xXyZZcjSvxty56p854p8dHeSOQH2T0xEzGGIopCr/ykiOxORL38k54w1T74jInL7NbfkydPyxb/LIyduyRuXvGOeyDV1THLOKd67v5ZXn5IXjW7LPXuAI76cPKHP+AJkRExE/v4Rw+OfllZDdtid+eZLeenxrv5fvy9iTsGcyIMPyzOvdoMIp3elfk5OjJLmyOv5h+WxZ+RGKPDanLMzKnc/kr95Rs6fiz2B8w/LlXfkLgoC+ZMYE/nmK7n1I7n4F/LsO/Oc/1Q+quXZYa97/+adoSUt9i4iAGeK7f/FCwAgiAgATAQRAYBJICIAMAlEBAAmgYgAwCQQEQCYBCICAJNARABgEogIAEwCEQGASSAiADAJRAQAJoGIAMAkEBEAmAQiAgCTQEQAYBKICABMAhEBgEkgIgAwCUQEACaBiADAJBARAJgEIgIAk0BEAGASiAgATAIRAYBJICIAMAlEBAAmgYjMzUrKQsp6xB51KUUpqxmupSqkqIJbm0qKQprhh2ukKKQascOMR6tLKYqR178oxvjJaEvNCyIyN4jI/EfbZ6Va1fOca4cispLSfpLtNddzuJQIIjI/Rywii6EuY/e1W5bwlBLX4MkxIpI5iMj8ICL2Zq9N18x6zXsUkV/8Qt5+W95/X/70p0TJztebrpdbeJWwfYjtYj2slZTaLmb5RpSKXRVWvW0q62vf3y6cSri2VmVfiXW6uIg0yo10IhK+fXMv5xfGlQm7Zatu7U8Rd83NQ+ifjOGs5i27xSL28m6q27p+aK7hog/Qss60R9Sd1xEm43E5l9T+1Ccu1X+S5oV5fmIes/Ox9fV0ljKvp1IOvnmexyEiV65sbuzCBfn661jhyn4u7dPszbyqrc8bS9jesKq7p+YqQi3i/HatjdE/5brcmNPxOUtuGsVHWys2ZvmQiDTWvk3dHbbzA9tj+mJO09R5OCNEpLEurHdZ1dWcx1UbrumLgnOFljZFBj48EXHvK9w6c1oiUx9RtOXoS62zxrGXcqnrG/G9tz+vcxDVJZzjbJ7qUbZEfvxj92fq+9+Plfc9xhECp3D76EMdP7UNbxp+VUtRGp60knJ9HOXH2bRQ4zlcwH6qU4Z++R0ZstxLa9eYfjlcRPxOk3te9QKsG9AUwSnslQl2PXwRCeuCg/+TMOkRRfuSrtW0hxDqNvp3UamW9W/BfiC+Tvk/D8cmIi+84IrIt78dK+/bQB8S75tzbeHGbUW3tHXD9XWjFdBUUtZG68N44qo3bAzvWUvRhXB3pvvx947vV++4UJoPZ6iIaFcV6c5UXoNLRK8/zsXrv9tqLdW6M87WISKys0cUQG13uM4VuEdduD2LqLegdGfU48iRisgPfuCKyGOPxcqHRMRsHfR6YRY2u5GNc0CvmdrXzKqQetW1R1bt8Su3jH55qog43hMdE3HupUUVkfaMqpiaD2eUiDj1PzYmYnS/I81mt12tjpWEOk0DRCQ0nuKLyA4eUQBFRDy9iLcx3aXd3RMRZ/e0iGhjVWKsyVtEfvpT98H98Iex8rGWiPeAFKtrQxWidiwrkZWUhhUbkbpMuNSuWiLO3fU7JkVk/y0R60pCt+/1QSTaD3XZqYgstyUSOvj0lkhEROZlXwOrb78t3/pWV1VeeCExQeP3S/un7z5fzXH79f5zNK3bNj2a2mp3VPVmQETCYyJdgQET8u2a9BSvcdiIiAQ7/JXy2b9C0xH92lINmFmwTmEfXNegaDfELzldRHb4iPTLHDYmEunARtp6oR+n7nfxjIuIiPzhD/LLX8rvfpcu6YyQW8NItouY8zir2nBWw3crwycUbyutalA6FdgTqcQIllMV172A0MCqM0eYbIm4T2PITESghjjq1vc71IHVSusG+mPMquM647VNNXR2ZksR2d0jUvF/J/wbjGix8wNZl7pjt8fsz+LMVyZEJDBbfLZeNrPm6r2OiTnwUa+8GQd/F/OVAds/3PmIwExKP6Tibg149qZ8Katod8Y8cn+YuIg4T0BvS/ebom11502EiPebJdWZF/NG9Dvyh1QcdiciO3xEwdPZh7WGflLdN/NZRd4TMR9aM6o7Y9x+e19nV0QAoCfURVoAiAjA8hk+tHQAEBGA5bEZK5Hw7MFSQEQAFklwJG5xLFJEACAfEBEAmAQiAgCTQEQAYBKICABMAhEBgEkgIgAwCUQEACaBiADAJBARAJgEIgIAk0BEAGASiAgATAIRAYBJICIAMAlEBAAmgYgAwCQQERGR9//tA5Ycl0M7DoggIi24Y45gtYWAiIjgjnmC1RYCIiKCO+YJVlsIiIgI7pgnWG0hICIiuGOeYLWFgIiI4I55gtUWAiIigjvmCVZbCBERWdVlUZRm/s+mslY0VbHGSte+qst+g1u8arq9qmZzhtCBQkfy92s3ut/tK/dP0VRdUdwxR7DaQthaRGxBaer1R2sv60tXkV0xMKp1X6nXX83PRjlnv14hrDM5WmGdw9wREckVrLYQthURp54G93F3sY7XioFxFP+U9qauqLtf+91v9Hif3QOtwR1zBKsthG1FpGsMOJXR38Wosr7uJDtM5mqjqRGTqvRZlXPgjjmC1RbChDERZQTCHMMwMEYsBoiI3d5Y91vMsqNFxMdWP9wxR7DaQpgysLopta6VWlfB2nu4iLjbpoiI3kEywB1zBKsthNgUr1o1tQq5KRhTkXEi4pY2R1TGiMggFcEdcwSrLYToeyLWUGjX5OhHSZ1xzcAMy6ouA3MmkujOaD2bbUTEG4ZtKmZnjgKsthASL5sZ4xLdexl9XdVfvXC3BKZMjKMHx0Ts91C27c64t8F7IkcDVlsIvLEqgjvmCVZbCIiICO6YJ1htISAiIrhjnmC1hYCIiOCOeYLVFgIiIoI75glWWwiIiAjR3rNdDu04IIKIHLwasGy3HNpxYAMigjvmB1ZbFIgI7pgfWG1RICK4Y35gtUVxdkRE//sg7pgjWG1RICK4Y35gtUWBiOCO+YHVFgUigjvmB1ZbFKmgREXVmH/JdyphMByAHUJAK6+GL3NjOdt/8beDL5rn87NR+Kczz7U5D+6YI1htUSRFpAhG91nVpfnZCV9kbKq1EGNtkgm3qB39eVWX0TQQbmwTL6SIpyeIyFGA1RZFUkTstkc41qATItEvpCeZcOOXlaWdGSKcoUJNIBM5m3I3gjvmCVZbFEO6MwZ6DNW+n2EGWA9EdHZ3thPTlHVjK0co74O3p9q/8c6PiBwFWG1RbCMiZs3tOwlqijqtamtRE8t61WnIatP+2GiI3gAKxGMN7YCIHA9YbVFs3RJRo7E7jQVlqEI2CmOGUm0Ty2y6Q12iGS33pXV0WiJnEqy2KMaNiWw0RE0LE8qr6a82Wwpt06PZaEZTFUVVG4OqwTGRYCD5QCo+ROQ4wGqLYsDsjD0HEsvVvdaXSpukDSaZ6AdUzamUsiytGq/kfXDnXrSQ827/itmZowCrLYoB3ZnQayJ+OgklAab3FogyVOI3Y/SZFCsjZmIuxilf1iveEzkesNqiGDkmcnTgjjmC1RYFIoI75gdWWxSICO6YH1htUSAiuGN+YLVFcXb+xauDO+YIVlsUiMjhA5ezbLEc2nFgw1kXkVEcvOawbLcc2nGOHERkBLhjjmC1uUFERoA75ghWmxtEZAS4Y45gtblBRHTU6W3cMUew2twgIjqIyNGA1eYGEdFBRI4GrDY3iIgOInI0YLW5GR4KQEvEUDghQtb/uNf+7z86wYS31qnYbgABJ/5RMHBAd6VNe/h+SzCyweY8uGOOYLW5GROUqF+nRS10wv54MUFGJphQ1zpJJ5x40EZMViewmS03bnhG/2LtEohI3mC1uRkXHtFt5BtVXYmPGAiNuD5QLMHEgLVNVVjxzzYaouxsrvKvNBRMke7MMYDV5mbUv3j1ZC5hMdCz1AxKMBFJO7FRirartfkekSVX7pT+jZ/bDxE5BrDa3IwXER81crN7gNEJJtS1vRasY8GvVcRIdKU2gIzL00VEG79BRI4BrDY3o0VEz3+Xaolsn2DCWbsWi6baNGS672oIaevyaImcRbDa3IwLShRREWUUIdzXGZdgwlrbNj02mtGqSl0Z+4XGRPRR1+CNIiLHAVabm22SV9nzqM7sjJ79e2yCiUDaif5bWVpTKVbCifUZnNkZe+5F0RgvPzizM0cBVpub8eERzRdB/PdEmtBrImMTTATSToinEIFmjXWZibkYt3zVmPeOiOQNVpubnb2xqlfN4wJ3zBGsNjeIyAhwxxzBanODiIwAd8wRrDY3iMgIcMccwWpzw794R4A75ghWmxtEZAQHj1rOst1yaMc5cvYqIgd3Jpbtln06CWTHvkVkn6eDnYDVIA4iAgmwGsRBRCABVoM4iAgkwGoQBxGBBFgN4iAikACrQRxEBBJgNYgTFxE9l0Pgf/rhv+ivt+COOYLVIE5ERPRcDlrCByvakBnptPuMiOQMVoM4YREJ/KPOW23FHetj+aiBFHHHHMFqECfSElGzNgRStNiJ58qqKrV/9OKOOYLVIE50TETJ2mBHHdQCGDrxSk1wxxzBahBnyOyMmbUhktXOKqzKCO6YI1gN4gyc4t1oR1xF1kMh+oAK7pgjWA3ixAZWA1kb/HwM1hYz4x2zM0cAVoM4sZZIImuDs8XL3LCREUQkZ7AaxOGNVUiA1SAOIgIJsBrEQUQgAVaDOIgIJMBqEAcRgQRYDeIQ7Z0lvezTSSA7DpZ35uAVg2W75VAOA4vlkCJyqFPD1mA18EFEYARYDXwQERgBVgMfRARGgNXABxGBEWA18EFEYARYDXwQERgBVgOfhIiEowFY8QDKuvGiEJnhAoyY8et4AbhjjmA18ImKSFNtZMEMOOQFDzEDKPqljS+ISN5gNfAZ3p0x4yLaitKv0SKcubuuwR1zBKuBz0ARWfdNWpnwNcTPVeVJjNMbwh1zBKuBz8DwiFVjyoSiCZ6I+NiqgzvmCFYDn+EZ8BwRSbRE1LwzJrhjjmA18AmLiKsUxqhHIA2eNSaSUhHcMUewGvik0mh2KrLu2VhDp15avF443MjvTcXszFGA1cAnMcVrDGi4zQ/rNZGV1zix8m3ynsiRgNXAZ1dvrCbTa7rgjjmC1cBnRyIyWkNwxyzBauCzpYj0gxzrbwPmY2xwxxzBauCzdUvEGvMY1wgREdwxT7Aa+PAvXhgBVgMfor2zjFsO5TCwWA4mIvvk4BWPZbvl0I4DgzgrInLoS4DRYLVcQERgoWC1XEBEYKFgtVyIiYjyZ10D/194CcbuED/9GHDHHMFquTCniDh/5kVEYAxYLRe2F5EkkYAkg0BEzjZYLRcQEVgoWC0XhoiI/af/9VZLE7ovTfsufFnXdoTEsl5tdtAP1x+l36KGe3Z2VISpX7X5Rw/umCNYLReSIuLFHrK+WZXZaTioLRGjjPO3Pfurd8BA+go9jknVWAfEHXMEq+VCUkTsn3ljrFQRkXDYVbWMWSAUcVHvzhiRB5wd1ZgEuGOOYLVcGDkmEqq92nhHekxkI0na/qExETt9hT0JtKpLZdgFd8wRrJYL24iIUu+3F5H2BFoDwjp9MH2FuFqkDN3ijjmC1XLh4C0RQ0TCLZHEodYqEtAQ3DFLsFoujBsTMRsMOxWRUGLOwFb3yloVaQIagjtmCVbLhQGzM1a3wZk/iYmIW/WjIuJkrnFnhmLpK9bryrK0ZIjZmbzBarkwoDsTeK8jLSLOGGhcRMQa9+hfTzGmeI1tg+ZyEJG8wWq5cCz/4o2Gm8cdcwSr5cKRiEhoSLUFd8wRrJYLRyEiqaw3uGOOYLVcyF1E3MFfFdwxR7BaLuQuIoPAHXMEq+XCWRERlhyXQzsODOJMiMgUDl6RWLZbDu04ZwhEJAHumCNYbZ8gIglwxxzBavsEEUmAO+YIVtsnBxOR0RknDnRY3DFHsNo+yV1E3PfMEBEQrLZfcheR3YWED4A75ghW2yeISALcMUew2j5JiYj993wvrIeRJWLllVfji6j/5vekQO2lOIc11/WhRwLxBmKxDKzLsvYq6xXumCVYbZ9ERSSaxUHLEhHI6yBevA/nLy8JEQkf1tvTFhEtFLwXtlVNYYGIZA1W2ycREUlE/omldNgUUCKTyWbN4JZI4LBxEYllttJuQO1h4Y45gtX2SVhEUlkc4oMadl6HeNz4ESLipouIiYh6geGMNeJlIBcR3DFPsNo+SYhIJItD6He+H10wCii1c4SIpNJFxETEFaKoyGijtLhjjmC1fbLDlkgkuvuUlkg8aPzOWyKIyDGA1fZJZEwknsXBr4ORvA6h4RVrosWL1D4kXcQ2YyLBphQicixgtX0Sm52JZ3EYkgHCaWt4HRRn5seaJxmWLmJAO8WZnQnu6ksXszO5gtX2SeI9kUgWh2B3Z13aLWCnntAbMta+w9JF9Jeovydiv03idZkQkaMEq+2TcW+satMXRw7umCNYbZ+MEpEzqCG4Y5ZgtX2SGBPxug1z/k1lkeCOOYLV9kmiJRL848mZAXfMEay2T4hslgB3zBGstk8QkQQHj1rOst1yaMc5QyAiADCJmIjcyJC9PTgAaEmIyP9lBSICsH8SIvK/WYGIAOwfRAQAJpEQkftZgYgA7B9EBAAmkRCR/8kKRARg/yRE5L93w79eKS784693dLAwiAjA/lmyiPR7Dd0dEQHYP0sWkdG7IyIA+ychIl8nuX558zffy9e//vr65eLCm5/229rP1y8XF958syu53uytvK4V+PTTNy9YJ4iAiADsn4SIfBXnkzcuFBfe+KT98u7ly+9+9dW7l8013ed3LxdFcfndbp2/8pM3Llif+6J9yf6YMRARgP0zXUS6Gr8mJCLmynYXtaS6FyICsFwSIvJfSX7y3b6z8d2ftN8vvHG739Z+NlfefuNCpKS6l7k1BiICsH/+HzNER2qmYPgwAAAAAElFTkSuQmCC" alt="" />
使用fielderror:
在action中的addFielderror增加错误,前面一个参数是错误的key,后裔个参数是错误的value,Fielderror是Map格式
显示Field使用<s:fielderror />struts标签
regist.jsp:
- <body>
- <h1><font color="blue">注册信息</font></h1>
- <s:actionerror cssStyle="color:red;"/>
- --------------------
- <s:fielderror cssStyle="color:blue;"></s:fielderror>
- <form action="regist.action" method="post">
- username:<input type="text" name="username" size="20"/><br/>
- password:<input type="password" name="password" size="20"/><br/>
- repassword:<input type="password" name="repassword" size="20"/><br/>
- sex:<input type="text" name="sex" size="20"/><br/>
- age:<input type="text" name="age" size="20"/><br/>
- birthday:<input type="text" name="birthday" size="text"/><br/>
- graduation:<input type="text" name="graduation" size="20"/><br/>
- <input type="submit" value="submit"/>
- </form>
- </body>
RegistAction.jsp:
- public void validate(){
- /**
- * 字符串使用正则验证,3步:
- * 1、将string变为正则对象 Pattern p1 = Pattern.compile(reg1);
- * 2、Matcher m = p1.matcher(username);
- * 3、 boolean b = m.matches();
- * 4这等价于前面3步: boolean b = Pattern.matches("a*b", "aaaaab");
- */
- String reg1="^[0-9a-zA-Z]{4,8}$";
- String reg2="^(wo)?man$";
- // String reg3="^([01]\\d\\d\\d\\|[2][0]\\d\\d)-([0][1-9]|[1][0-2])\\-([0-2][0-9]|[3][01])$"; 使用下面的方法是用正则,不需要将正则的String字符串前后加//
- //System.out.println(username);
- boolean usn=Pattern.matches(reg1, username);
- boolean ps=Pattern.matches(reg1, password);
- boolean reps=password.equals(repassword);
- boolean sx=Pattern.matches(reg2, sex);
- boolean ag=(age>0&&age<=100);
- boolean tm=false;
- if(birthday!=null&&graduation!=null){
- Calendar bir=Calendar.getInstance();
- bir.setTime(birthday);
- Calendar gra=Calendar.getInstance();
- gra.setTime(graduation);
- tm=(bir.before(gra));
- }
- if(!usn){
- this.addActionError("username should size in four to eight!");
- this.addFieldError("username","username should size in four to eight!");
- }
- if(!ps){
- this.addActionError("password should size in four to eight!");
- }
- if(!reps){
- this.addActionError("repassword should be same as password!");
- }
- if(!sx){
- this.addActionError("sex should be man or woman");
- }
- if(!ag){
- this.addActionError("age should between zero and hundred!");
- }
- if(birthday==null){
- this.addActionError("birthday invalid!");
- }
- if(graduation==null){
- this.addActionError("graduation invalid!");
- }
- if(!tm){
- this.addActionError("if exist,birthday shoule before graduation!");
- }
- }
aaarticlea/png;base64,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" alt="" />
如果jsp页面使用的是struts标签编写的form表单,并且<s:form/>的theme属性不等于simple,则默认jsp中也会展示一遍fielderror中的内容
regist.jsp:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'regist.jsp' starting page</title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="expires" content="0">
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="This is my page">
- <!--
- <link rel="stylesheet" type="text/css" href="styles.css">
- -->
- </head>
- <body>
- <h1><font color="blue">注册信息</font></h1>
- <s:actionerror cssStyle="color:red;"/>
- --------------------
- <s:fielderror cssStyle="color:blue;"></s:fielderror>
- <!--
- <form action="regist.action" method="post">
- username:<input type="text" name="username" size="20"/><br/>
- password:<input type="password" name="password" size="20"/><br/>
- repassword:<input type="password" name="repassword" size="20"/><br/>
- sex:<input type="text" name="sex" size="20"/><br/>
- age:<input type="text" name="age" size="20"/><br/>
- birthday:<input type="text" name="birthday" size="text"/><br/>
- graduation:<input type="text" name="graduation" size="20"/><br/>
- <input type="submit" value="submit"/>
- </form>
- -->
- <s:form action="regist.action" theme="">
- username:<s:textfield name="username" label="username"></s:textfield><br/>
- password:<s:password name="password" label="password"></s:password><br/>
- repassword:<s:password name="repassword" label="repassword"></s:password><br/>
- sex:<s:textfield name="sex" label="sex"></s:textfield><br/>
- age:<s:textfield name="age" label="age"></s:textfield><br/>
- birthday:<s:textfield name="birthday" label="birthday"></s:textfield><br/>
- graduation:<s:textfield name="graduation" label="graduation"></s:textfield><br/>
- <s:submit value="submit"></s:submit><br/>
- </s:form>
- </body>
- </html>
效果:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAncAAAJtCAIAAADb5cHIAAAgAElEQVR4nO3dT8gl15nf8Vo09EKLYGithBDGhCwaUw3jxRAxBJvgzYCI4QUR6GK6EQljiKAzkI0I8Wp4qU1WMghC6IUCZtIyXaA4EHVEGwwWBM/CzAUH92gzWrSYBi2Cwb07WdS/5zznOaeq7q3z3qq3vx9eUN9769+tujq/e/7UPYUDAAB5FOc+AAAAri1SFgCAXEhZAAByIWUBAMiFlAUAIBdSFgCAXEhZAAByIWUBAMiFlAUAIJcjU/abv3f/46funT91r//Ifb3uEZ3oc/fG6+6df+/++6/dP/7BWuAP7ne/do9+6v7NO+6tN9wb77uXa+z2w7dd8Zp76y331lvuB//affDzNTYKANi5MWW/btx3f+R+PyNz/su/dEUx/r3/+aw9NZW3VvhXNXOXLKroXr74QCz2HfebcIlv3I9uimVuup99M+v4U750b8vD+5b7ZFtfPQAA59Gl7NefuX920xWFe/2H7reTQful+74MqrfdlzP2dDUpW5fjYm9+YC/z2Y+9rb394Yyjd+5QTx3V7L+ynrVHAMDeFc45d3DfE6l583vub822VuHLj9xNERs//mx6T1eRsn6d8oMvIov9xn1Hbs2s8gZIWQDAUl1dVgXbELSyanhillxByv7DR2KZN90XzZpxSMoCAJYa+2XNoM2UskOgyugyU3Z40snIjKTsR98fl3nzA3+VdVM23mQdI1cnZQHgFeGNMVZB+94vdpWy/+C+L/b+k9+QsgCAM9N38nQJd9O91ziXrcU4R8p6zcVtVystxgCAswrul33pPnnPvT81msmr9ZbuMGNPuVP2w7dPqmtOImUBAEt1Kfvb2n33fffV7B9o2FzKHlxZWAuo5+f/BbsgZQEASxXOud9/7F4vXFG41/759D08ra2l7G9+EsnITClLvywAYIbi//2vLmLbv5tvuI9/P73atlL2pfvxt0hZAMDmFO6l+/hd7ycmitfcT341sdqmUvbrj/3jPyoFJ9FiDABYquuX/dUHflDddO99kvoZ/fkpu2I4xeLqJ9+J10TplwUAnM84xvi3H/lNx99zv/l/zjlXnZZSuVP2m58FFVlSFgCwDd6dPF99YgyD2njK/vavkxlJvywA4Hz0/bJff+b+7M+9aXk2nrIvP+n+/aMfnZSCk0hZAMBS07O4n5iyA9mV+94vuicnRz/VQ5dvbPRTW1v9lvvsk9TeT0eLMQBgKS9lP37X/eCv3Od/lxr31DpijPHH7xjZaaas/NH/6ZR1rircd34SWYB+WQDA+Xgp+14/y+zNf+L+4lFqtSNSVv4kcjplzSUTKVt/z338NSkLANgckbJfuDdFEow3qlqOSNn3xQ9H/Of/2z1ppuxf3x6f/PibYZfRCPzsf7qXsQXWS9lJX//K/fkbrihccdPVv128OgDg+hlTVtXVxnizLE7Zb9w7YuNDgpspW1lLTs98lzVlX7r3v+3e+U/u13/fNafLg6wa5750/+KmWL30RpANfvep+1ffdn9NBgPAq2FMWdkbOhmci1P2c/etYfk33Rf900bKyly87cY8WiNl6+SBem/K38XLz8bjf+2ful+HKRv8BNXrlftabOGrX7g/e6N/9XXXfO0AANden7J+XfPNDyZWW5qyXkX5HfeN9XybVS8/sZc8b8r+TNwm9K0fu5dWyuotFO4vPnW/+HfuL//G/cE597V7R1R2b77jyFkAuPa6lH3ZePWw9z+fWG1pysqKsoxw+ZsSbVZ9/n4k7M+Ysl+6t8VGfvIb5yIp67521euuKNzNN1z9K+f6kVyvfdd9+Ev3VeP9utb36umx3ACAXetS9rMfi4C56Zqp4n9Zyvop9e7fdOny8hv3H76js+qDN8WS/811v0D10v3Nuyuk7II/sQt5coY6qJ2yzn3zC/cn77rf/cF44z/8r/55Y5AUAFx3XcrKAcBdO21zVDhZWaUmf/3oS1fdNBauGq/7syjcR5/bGXnzPeutZErZL933xdH++LPuaZmyr//I/V0wWOybv3f1D71M/dk3zn3t3u1P9Xf/0lgLAHCdFM75Q5MK987Hzrn1Utbvjyzedl+qkVb93wdfGCOw3v+WseT3P7LeSp6U/eYLd/e73sG35E29c/6Ge2S//Mj9yV33y6+yXE4AwKYUzu8KLQr30T8451ZL2d/91L0mnnn7Q+ec++IDveTN77u/+9/u2zf1kp+8G2zzpvvYHDiU806er/6P+6s/c++JluGv/U7W9N/N79k39gAArrfCOfcfvy0i4fuuDdkVW4z/8Dv3l9/tAvJn3zgnBxLfdG+85X7wV11H5suvXP3n7qZYUg6Pev0td/sH7pPfR95KzjHGpq9+6f7tD9zrr6XOwOtvubsfuq+IWAB4JXX9sn/4R/f5T907f+p++GGe/bx0v6zdD+f9suDffjh3Sc+VpywAAGnTc/IAAIDjkLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLLn1lSuKFxz5Vs+1K4oXH2YvbmDKwtX1usc24lba9/asuPfmKpwRTVrycVXCsCGkLLnRsouXvUqU+fgysJVGS7PiilbqTPZuCLPMQNYjpQ9t92k7GY0lStKd0UHvoHEmrhS4feVDRwzgB4pe26k7FKkrP9ykLIHV+7zygLXUYaUffLEXV66R4/cH/+YXC7yHXwsHZqu700XcwdX9s/L0rYLlX6tRhRP1bC830bXLtD+ySOpS1eU7iAOoD2qylpYHWqqGVAc+bCF7rDlmwq2MB6/v+swR+tyXD18VZ6HdNk9dHyOW5DXS75f/xQlzmp4KoZXwxNuB5s8S/Lq+8/Ldbst+ydBn/zGf6dyXXOz8d0Zhxw5G7rF2P8AyGtnfIz7dyQv07h9UhbYkLVT9u7d8f/5O3fcixfxRdMp6yduU3vlqS6d22UqnbtDAdeI7Y97bLx/y+KyK177QnAo3eSxjWWr/zDa3+b38B3q7qjUYbfHrAr08Tjbsjieo9GU9VccYtIsi1VlsRZlt5Ga/vNeeCc6X8PrGLyv1DcAGZzW5TA/Ia0wZVM147Aum9ydfpfxs1EFl0OdQ5Wy0Y8xdVlg01ZN2YcPdf3m3r340smUjbV26kIzWEUWLjqxrDLXe6kS/xZ7b7cTq4ioWG0XDo88VncMD1tuMDxguZ35KRsumUgy+4tCJDK9IwyWibbuWinbRF5V1DbDo5Vvdk7KpgIpSNn07hLvUR15+irLEzLxMSZlgU1bNWUvLnTK3roVXzqZst3392pqFVFBDAu7MNhihX7lN8QlstwNC1TjS2FdxyjjGrvalEpKM2ySbzmWsmE2JFqM2yJeN4RaB6M2Em4z9p0j0Sbh+gOelbJmv6m4BLNajO39WNuf2p33FpNnY7wi1ok1W4ztM0DKApu2asrev69T9vbt+NJT/bJjn1Ok+011R81N2aAhrn1GFsdLUzb8M/vq1B7DQxo33u7dvI1EnLdFKZsOSMXogY6U5mE9Pvwz9jIjZWM93GHK6u2LLMyRsondeW8xeTZUyqrVp1PW7C8Xz5CywDasmrKPH+sC5cGD+NKTo5/apWSnVPLmxWUpG+z9lJRdVqL5faKTKXv1dVlva/Eql27mTdRcQ6um7JbrsrGNn1qXTaQsgA1Ze/TT5aW7caNLkYuLiWHGqoIVLfdVoZkofOenrNnfdkTKJts2oyaTMnYkftkdluMynNLdk21GTn4/GCNNleZm3sz/DYe1UjbWUSrHxMkt+/tdnLJTuwvfY+xsJLr2Xd+WQMoC+5fhTp7nz93Tp+7Zs+klvbEnfWvwUMNTg4+iAyz9McbzW4z18JNjU1YPTmnseDjU+ial6bqs+X6nhhzbY4wb76WhhcAe/SSOP9ZJHEtBNZ7oUM8eY3xsyhrnPz3keFHKBhk2sbvwUCNnowouhx75PDNlw3O1gXt8AfTO/asU4y2J/e2SQ2kibxL1SgzZFRreLysWnCie/Lszj2wxFjsq+psdp99s0P0cTVk3dXdm+C5i9/mIJcs62WJs3v4b9Aerv+HA5KvL7pcVr89PWX3A8U6Hor/rdEHKitVVssZ2ZxytdTbMoenDjha0GIvjkXczk7LANpw7ZQGErvT3rQBkRMoC23NMZz+ALSJlgXNTvdfh4G0Au0XKAhvgdXXTVgxcH6QsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLJrWf5zsonJbk+U+OEkN+8Hj/wVVv0todO2Nvx+1l5vdFnyOVl8pQBsDim7FlI2/9auMnUWzC+0bLvrpWwwG8GceZYAXC1Sdi3XOGU3IzEj0+q2cJYmjiH4vkLKAttDyq6FlM2PlPVfDloFmvMfMwBfhpR98sRdXrpHjyYml3VDGPhzxUjyB3G80kRMUyNXkcubU7VXRTCNj3go58wxpxKr4pPPNOmUbYw30qVs/O0n5n7ROeo3HpqvDrtIl93eLEn+21dvOfyhouj1Ct5U92p/0vSFS55A7+qcdorUXIHh6VKH5E2+NJVn5hRMsan0hpNmzBAsj6cyNj6eT1IW2Jy1U/bu3fH//Dt33IsXqYUrv+BQM3ceau/fhT8TrXypK2FUZNbOqdpPX1oNxVBdRidM9fK4MQpx9WOzVWKiN3/ivKYW8+sFRaqcizR8mM5R+1V/gtWhTDfLYnW6alF2h6mpjjCcVdAO2iBl9fuK1+/NCQePP0XJtofwu4h6Rl0v41D7NxJ+etXUe8NGzI+E2k5qaltSFticVVP24UNd0bl3L7V8WKQmJvwaZimJdT6ZzaR6ns5SFLUHV8anUveKsCYokSMFnFlqx+qO+kfhZflr1YxlwT0/ZcN26eiP0ceq42ZkqoWDZaKtu2HKxoNTCb8znXSKks315hyu6iTEWubDd1GZVzZ8C/4JCYM8/P5EygLbtmrKXlzolL11K7V8WEjZAzuHFrN24UY3VLba8DAnOR+itKxF/VUUSWZxWcWnxTaCM95i3FUfg+2bU5cnvknIkzM3Za2jSrQYV+a05FbAqIO3a35mjFktxurVOSm72imKMGuu+sMVeY/2N5vgiphvwWgxNrfjSFlgF1ZN2fv3dcrevp1aPpaysn45BKpcWHZlNWqDQUvgEF1V4epDV6M9tNuv9DL24Zkpq4rXZL+sei8tM2XbPZrfNuTJWZSyKiBT/bKiCzDRMqmbLs3+2li79IyUjfXphim7wimKMFI2CNR0K4X+a1cPUlatPp2yVn+5E8+QssCWrJqyjx/rkuXBg9TyqbpsUIIYxaLVXerMzq3KuYMrRTHXOFeXE2XuWnVZ9e6GFSdT9urrst6RxN5+0Mzrkk392qopu926bGzjp9dlEykLYHPWHv10eelu3Oiy5OJiYphx2Dc2FE+6ALJK9uH5sKCRxV9beW1qr+Za1WOnrIv3y3YLzLgxsX1m+k4esdlEykY7HSvj3+ERypI6jJNqxvhYbxf+xu2QTrb0hkuenrIrniL7MOf1yyb6CBKtBbFvb90XR1IWuD4y3Mnz/Ll7+tQ9eza9pBrn6Y318MtQORr5UIvSXBTulSg0jeK49HKiVAkXpPjEMBOVVX1Da2z0k7oVZLIuq8/GnPG0kQhR8T807ZqjnyqrpT0cCGaW7GpQVVPNHWN8ZMqud4pM4Rep8A0mvqyob5B1aX+w220Oe1Gj7idSNnJTEL9KAWzJWX+VwrtnMWj7lZ2v9SEYNxuuIm+d9AtQPao2Mh546NbVr0aK/nH50h2SLcZyy8Nm0imrzoDdXDm8lGwOVXdkJuJBLmmOH5ZvxH5HYbeusl7KrniKorvzN+t1P0+1kMtzlbhfVp60ZlGLsXj77fsiZYHt2UDKAhjEWqEB7BMpC2zH/O5tAPtAygLnM/bXuvgQPwA7RsoCZxUdDQDgOmBOHgAAciFlAQDIhZQFACAXUhYAgFxIWQAAcnl1Ujbfj76mt5z4TagZEwwAAPaMlM29ZVIWAF5dpGzuLZOyAPDqImVzb5mUBYBXV4aUffLEXV66R48mJpd1bpwwTv/qjXhezaYZTmZipts4z0kwGaeaAkWKzrgSmV+2ibwaTgWTTlk1Z463iDlJTmQ7437bgxeTFBlThYcnITxFS6adMaZga7rrqPaupppRU9TpOYPlVEvhVHSlOwRvs4qcMXld5Hluf4NMzQEFAGtYO2Xv3h2Lqjt33IsX8UX9wvRQe3O1ehNw9mW9nE80McmXmly2FhOjFv78tYWaktafEDSRo4mUVdlfJQIymJU2NWHqVFqPxzCkjn/e5Px09ux7U6co3Ol4PP7CQ2LZNXz/N/Hbw1MT7TXhGQjyuPs2IOerl8fvX5dD7f27CGZ1VXO+Mjk6gDWsmrIPH3rVjqJw9+5FF47FpJ51tQkKxKr7x7Jm2KAqLLPHOBi5nfkpG7YeR+ayHXZhTIVb2W+kqSKVS/MbQzDzbmJOdRlLsVOkhJPjynOoq6fWAQ87qgpXqu9SkTOg9qviUM1X75I/lF35B5BuugCAY62ashcXOmVv3Yov3VhtkmHBarUfVrG8cc71VROd38mkDDPDycCbnbJGLC3slx2iNAx+b6fJ7eg8VufQ32DiK8L8Paq9TE4nrr5MNI13LdotmxtJXbVg2rhw1vdhj7oSXOkFSFkAa1g1Ze/f1yl7+3ZqedkTJpuLi+Av7I5N9ZyJjeh4DiKk3Y5ZHI+F+KKUnfzekHxpyGl5cmIdk7HtpFPW67ZMVsSjYWnmkDiMyZQdTuChHhsnqqbbiKwQ652oqzY7ZVWndTWVsoxKA7CGVVP28WMdCQ8ezFhNdgdOViOCTscEr79tMmU3WZedVaFakrL6CE9I2VPqskOaNtV4YF3q90e+Zl02eGukLIArsfbop8tLd+NGF4QXFzOGGbdEAW238vW67rTZ5eBkUkbHUsm8D7Lfyyqx5Vgz7/x+2bG/cH675ZKUVcnkdaDOT9l4v2y0nzvQVl4reQlKV1feyDW7X7YS/56Xsvp4/DNPygLIJsOdPM+fu6dP3bNnE4sdaj08xx6Dc3ClNVZWDccV23WVP/5lTl3WBUNgJoccmynr+gq0agCfNTY4GM4TDjmeWSdOpKz3rvs3ckTKGpdJPJyTsu1BDhe320JpfJuxB10vqssG460m+2VJWQBrOOuvUshbV70SWd4i6bcf6kY/q93Yvsd0RoTI4wnr05V4KX2/bCUPfkaL8cxbeCfvl/XWivfLerfDHtdiLDY7HN6CFd24u8kboFX/tHx1Ub+suh2WFmMAV+LV+e0nAACuGikLAEAupCwAALmQsgAA5ELKAgCQCykLAEAupCwAALmQsgAA5ELKAgCQyyuZsolpU09kzjowSPwiUr5DwjESP/90hbPPrvmpYNJc4DxI2VWdJWWjs7vjaNc9ZflWB1wVUnZVZ0nZ9E5xDFIWwDpI2VWRstfEdU/Zdp5BPjNAfhlS9skTd3npHj2aNblsdFoefzqauglKPTlvT3w+WrmY/iIvp5RRW4jPNhNGWiUOzHxVzeSTTllvPp/JcyVPQjjHzvBGKn8j/gSu9u4iLw1voZo6+WouHTWjjj1vUj89TnfpzeOcSjj7E9WnpvxQJaY/amakrDmTUpiL4bxAqbMn3ulwtN6UvU23gDf9X+T/oOjkS6QscHXWTtm7d8f/5+/ccS9epBZuqrFcUMWTmgStSk5jp2cuc95i4y5qb57a6Jx6jfEwnaP2qyrhGrsolG+/UBPTqnT0Dzg2zWoVnCj1qpyaPnHk5ktDOspZ/6YniQuL+OH4rZlfw69Tscuh9xP7RAVT+RrTCSc+b8F7Ucc/XKk5KRs9e/5DtbBed9h45FPhvcHg7ZOywFVZNWUfPtR1l3v3Zq8s50ANG+X8AkjFqjfbq1wp0uAWzgCfmm3U3878lA33Hp153nxJfEUIK8GJCrQ+htKVft3XfiNid4mXwll+57RXe6c0ORtuOGdw+nKkyE9U8K0lnM0+8Xnzd69fksczJ2VjZy88kzL7w3UTn4rwJbU6KQtclVVT9uJCp+ytW/PW7OsHbRlhFKOyaI6UiWF6dV//g2puqig0e90SCRQPvDAelvXLipCwy99K/Dto1B2itGrG+utYtoYtosPuEi9Zb2FyhLN6a7EAaBfQJ23qcsT36n2ijDclNjLxebO2HKbd/JS1z561R6PFWM1RH/lUGF99aDEGzmPVlL1/X6fs7dup5cd+o8orZYyCO0jZ8M/srhs728QG7aKwXcAswUUJtShlVaF5RMq2W5B9b+NfrA7k52XTbrwvfGXqhNss6+RLsZxI1CyDmp/ZXzts00zZxOVQYp+oWMq2G5n4vFnvKFanPCZl2+VlzTt8NZaykU+F1/tuHTYpC1yVVVP28WP9//yDB9GFdamhUnaqLjtRlbH2NVHhECm7xbpsfISXWacpa+caUUEv3cG5yu9NtIcRJV5anrJhC3CseX9c/ti6bOITNZ2yJ9dlV0nZxXXZyKdisi4L4KqsPfrp8tLduNFF2sVFapixLo9EpSfWqCj7ZadH3Oj9TRWF8XSUdR1d74kPFIp1s83sl5VplE6mcEdt5bWpvIyp/Y1MlNHJkcMzU9b+VpFM8fDkpy+Hfj7yiUqn7OTnzd9NKmXDKyWPP3327PceT9nEpyI2JoCUBa5chjt5nj93T5+6Z8+mlpOlVd9KqcaaqgGiavilN+7USoWm0t2B03XZI4YcxwYiNX3TpdhsOmXVuvoWF3+IU2x49ri6WKYuXVka1cRxFwdXxvYuXlqQsvHqoPpKcaij49rc5OUI3rX9iUqmrJv6vEX3Io4wMeR4ZsqqaFfDzs2vLNFPRXsY6qPIr1IAZ3DWX6VI36Ho3TkavOp178VbU8eNTN7UGIyqHf5U0SZ33d77GL3PR2ynrGe0GPvLJ96LUdr6Ba4qf8MRqvptWg2M4UvzU9bsNVTfDMJ3at+Ulbwc3oKxT9RUyrqpz1tiRX1O/Fu057YYiwWGddMtxvqw1avqdnB++wk4j7389lOymREAgE3aScqmOyYBANikraZsFRvGAgDAbmw1ZdVdm7QVAwB2aLMpCwDA7pGyAADkQsoCAJALKQsAQC6kLAAAuZw1ZaOzrzvn5k1cKiV+Wcm08s/fZP41dnmu0ke+9DwAALLZc8qqX40nZVvqPCz9sgIAWM+GU3aSOXv52VI2s/nnipQFgM0gZY/f/5U6OmWHKdwBAFcuQ8o+eeIuL92jR6nJZVuVmC0knJ4lnI2ubrofhKrlhDz9pDFDulT+8yPxe1JlHaSs/LWp+ERv0QndwpnUKj17T2x1OW2LnFVGzxgTbzEe33JFygLAdqydsnfvjiFx54578SK1cOXPW6dmZwtTNj1dnV5G/fqx/zDcYKWmjWuPKjLjnlEDtuYrVdPQNtZhy+mGDvW4BRWW0ZT1JzQdvrKQsgCwAaum7MOHej7Re/dSy1dBdVMOaErNrB4sYC4jFwi7J2XyKTJK1Yp1GQmtMGWDiWaHKC38Ocxjh1EV9vTmMmXDeq2aI52UBYDzWTVlLy50yt66lVo+7GuMxZvZ5zrZLztmttVOG+uXHdpsu001ur3X7vq1WozFGxPz4/oHU5dW+/PQfN1vJJaysXNIygLABqyasvfv65S9fTu1fDoh1knZNo2sSeCNdte+NzRsrW2D8FDHx+vOSFmvAVm0SHuJKDqGq3kpq0KalAWAzVg1ZR8/1in74EFq+auoy4qUTdRl05sa6sR2vbNbaEHKtgs3KraDO25npmy6LgsAOJ+1Rz9dXrobN7qIvbiYGGYc9svKXs81U9ZKo6qIvqq6NrtG4ybeXOwWpqxzVeGqxtVldLiTGtYUS9lYfzMpCwAbkOFOnufP3dOn7tmz6SXVQFyVbZMpqzpW0ynbvqr2ZY4hGoYfy03VpStj4566LS5L2bZ+XAa3EnnDnWakbDeo2B+nHTuNAICrtYFfpZB3iKpgS6esG6LIv192YMbw0PmqXk3ccjqsm/oBxYUpq9IxPMLuxt/JlB021X9l4befAGAzmJNnnsT9NgAARJCy86TGPQEAYCNlZ6AiCwA4CimbFvxgIQAAs5GyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkcn1TNtNvHu1rsy3v16CsiROk8AefAQDHImXTginzXqmUZXofADgNKZsWzEa3R4vCkpQFgPWQsmmvdsoO8+ACAI6SIWWfPHGXl+7Ro4nJZVtqnhxZxLcx2dTjrDtqed3s2XibkimrJ7HxJ7KNbbadqFVu01nhXRX2IQ3ZJmf7iTGOtp1f1poc0Iu9RrcGF4V3xtxUi3FiIiBSFgBOs3bK3r07Ftl37rgXL1ILGxPKqpRVydSIePBrmWpmum42vZkpG99sWJf1UlYllj/v+pBeciLYWIdomLLqi0V3DMHxtPPUtktWIlmjDb/+MacvASkLAKdZNWUfPvQqf0Xh7t2LLx0Ow/FTqi3xE0W8TMpwZGw1P2Xjm02nbFivlXkWTkmbaMQOU1Y28MYmmm0fmsktZziIpuzUJSBlAeA0q6bsxYVO2Vu3ogubnYVhi3GsM1HO3272ni5qMbY3a2153Kw5WFeMSbZnlZ+dsrGj9V6NpGBXG/bzPkzZyUtAygLAaVZN2fv3dcrevh1d2JxOLp2ysgexkQs0RlrMz63oZt10yuqBUckMM3pV5x+tf0jtZptKJKLolK0ao1YdS9nEJSBlAeA0q6bs48c6ZR88iC68uC4b1B1Vyh5Zl01s1tryqXXZ01NWTClfiWNTy8xP2VRdFgBwkrVHP11euhs3uoi9uEgOMw6jsQlGP8mUDZYfe15j/Yv+ACK5qzFLEpu1Xp3TL2v0hrYbWyllD7E9ilsAACAASURBVLUrSndovCdVOsrO3Wi/7NQlAACcJsOdPM+fu6dP3bNn00u245uGHKqKZMqGNd1gfJNXsZNh6Q/q6botrfFE5orpmq4aYzw8zJey3Y5K78DkWkMb+ETKTl0CfpUCAE5z7l+lkPekNpOjn+J3xDox5KcNBrMq7K1bzdrskFj2/bLyFlW/XpgxZYN0bMkbc+e0GE9eAlIWAE5z7pRVYvelAACwQ5tKWWuoMAAAu3XWlK1Lkanq9xAAANi9c9dlYz8CDADA/p07ZQEAuL5IWQAAciFlAQDIhZQFACAXUhYAgFzOmrL2pLBF8JNPx7GmEFgkPfXe4t9FMmcXSDj5+GftJP5zVCdKn7111/JWL3K9o6uR6Yrku9AAkraUsieWsNq8lEr82tSJKaunKCBls63Vuh5Bsta7UB/sFU8OszYBS2ypxfgMP6+YTL4TU1+Xa6RstrXGdfdf+q9zRZZ+2JYgZYElSFlSlpTdku2nbF3yAzLAfBlS9skTd3npHj1KTi7rnBNfiod5b9I/AiV/KKorhoLfZRznVVUpJSbPabcv5/Axd9qV+HLWHbEjr8W431d7hFXtTdTTHW1f8Km5g/Qeh55pc+Jb9fatJI5WNfyph+TpaiLvUZ23Ij7V7rBrb069cOJCdfyB9DlPn4ciXCV+8N0bb/ztyOXTYS/2WNbem+0+GE23KfkJmTzDw8cjNUVxZKYpPbGj9WnXEz2Zh9R/qLxPo78iKQvMtnbK3r07/q9754578SK1sMqDdF22CsoRWRJ1BWgT+ffBlaKQPdReqZqqywYzutvTx/aFXWqeu74wHQ6j8ssv72GwcF2Om5Jlus7U2IwL/vNN7c2ypxJiTKPGeJjO0dirscunpM95eju6Lps8ePXGnbNm3o0ErTpL5jnUl94P/vEdWR+quSmb2GzwwVbnKvxfT53zwp8qUY2fIGWB2VZN2YcP/SpF4e7dSy0/P2XNxPLmbC/dQZWzopCNjlSakbIyDOSApjBl1XbslI3UhsMj1IHnbXpcWO1F13ViB+M/L/crL0pYLZbbmZ+y6csnpc/59MdAJUf84MM3bk5IbI5us8fGx76pBOQ1is0cPLcuG9lsOmWND0Pw9TSR0KQssMSqKXtxoVP21q3U8vNT1izX1Df3SpUdQcFhFE9L+2WbSC5aLbfT/bJia7F9hYW1mlVeJU0VKd+7tYLWV7shsYofQPKYYyk7cfnU3uPnPL2d2Hcsc1PTVyf2VcDastFiHGlu9u41sj5+y1qMzc1aW5abNfsUxjMZvEE1Wp6UBZZYNWXv39cpe/t2avllKRv+Bd2xXtnnFxay63fmiKR08q2Vsu1axsgdf5vDGShr/ZLKxVglauyuE2/KTtl2AbMyp455fsomL5+xd2uP6e2EKZs4+Fh7vvozPhvWlidSVvSe1gexayvIF6RsbLNuOmXD9zX+zxhJ2eEwSFlgiVVT9vFjXUg9eJBaflHKpv7HFkWkXZf1nyz8Pqfz1mVjiZWKBOsLRNMuNjXIVvX8TabsWnXZmeXyZF02sZ3T67KzRnQvr8uqz7lK2aPrstHNWls+vS674AdYAIzWHv10eelu3OjK8YuLiWHGy/pl42M+h+LV22DsThhZni7sl5WHsW7Khmkna+cqe3TPX/+OYs3FWiJsplp65RnQFyU+eih9+aT0OZ/5MXAzDz7WVJ4WaVuOpmywvHyPsZ8/k2On7c7j5GaP65eNfZhJWeAEGe7kef7cPX3qnj2bXnLBGONg6FBlfd+PjTc+1KKM8Esu4/enZAukeFVl22TKTpa23lp+ST3UuWOt02p3TeXK5J2mTTWWqqnxRFa1bMGQ49gY3fjlU9LnPL0dFZPpg48ljdfZnxhnpFrsEylrDQRTtVU98lkNBlajl62RU/aKyZpu9BvJVMryqxTAElv6hcX5zcLqy779jT7svBSdWKM+tNqNVGqV0jWiQzda9ETqzRNDXeJ39BZV/PitW2nD8xAyb1dNp6w8P8ap83u760Pyflnz8gXS5zy9nVjftnnw9qBruXyy8q1uep7ol43fEev8c1g1qQ7jbt3gdi9zs+qDHb5f+XlIfSxJWeAkW/rtp/NLjh7atPhtJ7gC1+NnpwBkQMoKh3qvZeWccU/IZf7IKQCvHFL2GqAie7WaKvjlyxXnkgJwrZCyuxb8ECOuRvRHgAHAQ8oCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJALKQsAQC6kLAAAuZCyAADkQsoCAJBL4dyhLotRWR+cizzZVOK5ompc7Ek2ud4mAQD7RV0WAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSNlza1xRuKq58i0fXFm4sl6wvbp0RekOaxzaqVtrXFG4YuHxb0pTuaJwsy778isFYDtI2XMjZZe62tSpS1dU6292xZRtKn0mqyLLMQM4Ail7bvtJ2a1oXFG4eq20n3L+xJq6UuH3lfMfM4AeKXtupOxSpKwvTNm63OeVBa6j9VP2yRN3eekePXJ//OPEkuZ3cFk6VEXX/aaKubrsn5elbR8q7VpVMxZPbetc++eFzsGVwy7EkRzqbsvDAbRHNW4naOocDzXZDDge+bCF/rDlm1JbkMfv7TrI0fbIm8ir3nlIl93NuOSwBXm95PvVXaSRs2qciv7V8ITHgk2eJXn1vefFusOWvZMQnPyq0OdqWNfcbGx3hsjZCFuMvQ+AvHbWx7h7R41/hP32SVlgO1ZO2bt3x//n79xxL16kFk6nrJe4jV+eBqVzu4zO3b6AG0rPyi/pKvlvUVwOxWu73lC6yWOTZat8mOhv83r4Dq5urMNuj1kV6OI427I4lqOJlPVW7GPSLov9ymJTj2W3mZre8354Jzpfw+uojjz9DUAGp3E5zE9Iu3aQsumacViXTexOi58N9TnxNqI+t1MfY+qywJatmbIPH+r6zb17qeVTKRtp7QwLTbWKV7gEiRWurl5qxL/HvbfbiVREdKweXGm208bqjsFhyw0aByy3Mz9lw/MZT7LYFwUzMtUR6mXirbthysrDS42NUl8CwqMVb3ZOyqYDSWVqeneJ96iOPH2VvRMy9TEmZYEtWzNlLy50yt66lVo+lbL99/dmapWxghgWdmGwRQr9obbavpTKcjcu0PQvhXUds4yrzGpTMinNsEm85VjKGtkQbzHuapZBQ6hxMGoj4TZj3zkSbRKuP+B5KWv2mw6XYGaLcUKi3SLcnSd5NuQVMU6s1WKsXiVlgV1YM2Xv39cpe/t2avmJflnR52R3v6nuqNkpqxri2mdkcbw4ZcM/s6/O36NxSGLj7d7N20jG87YoZdMB6TN7oO2vOEE9Pjwb5l6mUzbWwx2kbLj9IQtzpGxid57k2dApq1afkbJmf/nwDCkLbMSaKfv4sS5QHjxILT85+sk53SmVunlxYcqqvZ+SsktLNK9PdDJlr7wuq7YWq3KFzbyJmmtoxZTdcl02tvHT67KJlAWwHSuPfrq8dDdudEXzxcXEMGNdwYqX+6rQTBS+81PW7G87ImVTbZtxk0kZOxKv7A7KcS+ckt2T7TPT3w+aaOSbeTP/NxzWStlYR6kcEye37L2L5Sk7sbvwPUbORqprv3+GlAWugfXv5Hn+3D196p49m7GoP/akbX4canhq8FFigKUsT+enbDj85LiUDQenVGY8HFzl36Q0py5rvt/0kGMzZV1fgfaOOT76aTz3kU7iaAqq8UQHV84eY3xcyprnPz3keFHK6gyb2l14qObZ8N6gGl7XX8eZKRueq/Pf4wugd+ZfpZC3JLa3Sw6libw7UJWDsis0vF9WbH2ieJJ3Zx7dYjzsaDikWKEt36zqfk6krJu6OzN8F7H7fMYlS3dIthibt/+q/mD9NxyYfHXh/bKDBSkbHHCs06EY7jpdkrLj6ipZk73O6mjDs2EOTR/P5JIW4/F45N3MpCywDfz2E7A9V/v7VgDyIWWBzTmusx/ABpGywLn5vdfG4G0Au0XKAhvgd3XTVgxcG6QsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5FM4d6rIoyvowPtlU3hNNVfSqRqx7qMvhBb141XRrVc24h9iGYlsK12tf1I/9Iw930VTGogAA5DaZsn7iNnX/T28t70GXdDotRe6p1Gsq+W+xnFpviFBvTypMvX3IFUlZAMBVm0pZFWS9YB29ire9Ni3FVsJd+i91i+r12sdhtTn4t94QAADnMJWyXXVSpVW4isi0MJgn26Tl06Kymsry6b1G9gEAwFWZ0S9r9ILKflRB9JrOSFm/xto3DctlF6dsiMosAOB85ox+cs6pPtJka+yylNWvnZKy1FwBAJtSuEh2WYk1LpiK2WUpq5eWvbpLUpaYBQBsTuGcGq/UVVqHoUxq8FFknPChLiMjf91Ei7HVeHxMygZjpZqKMcYAgLPqfpVC9I1296cOoWTfgqpfiQz8FVuP9sv69+Me22Ks3wb3ywIAzo7ffgIAIBdSFgCAXEhZAAByIWUBAMiFlAUAIBdSFgCAXEhZAAByIWUBAMiFlAUAIJfrl7KJuWsBALhSpCwAALmQsgAA5ELKAgCQSz+/bFE1cm4clVLReXn8uXys5c2p2vUkOf5cO97MOt7+uiPtNj+8Ep3Uh8l4AADnNKRsEZ2o9VCX8t9qJlrxUm1Np97U9SFctCzUHorI7LR+TnZHGkx+FwQuKQsA2IAhZf0s0hO5Wq9EmmbD6WX1s4e6LMqy9B+LWDRmsY1Oxx6uQLICALZCthgLenp08exYC23rjTrQdEW1I3K7qYqybvxoFVtMr2k2IQf7J2UBABuQSlkZbUM7rLew6EENsk+37Q5h2VRFWR/GGuwYsnYVWuzRTFm1AikLANiKybqsftGqbhrdpW6M4H7hLk0PdTm2OLePvUWoywIArgu7X3YMWZ1ZarCRsYZH1jXbymszhmpTFUVVi5FP0X7ZyNAoK1LbAyRlAQAbIMYY+yN5vYHEXsqNt+dU1r04TTXGYDi0uCzHmqtrqqIsSy8SdYr7uRobHBU0YTPGGACwAaLFOHa7rH9PrB4sHOmBtbprw4qwnYJy/akRxWr5sj5wvywAYCsi/bIAAOBkpCwAALmQsgAA5ELKAgCQy/WbkwcAgK0gZQEAyIWUBQAgF1IWAIBcSFkAAHJ51VOW8dUAgHxIWVIWAJALKUvKAgByIWVJWQBALuGcPP40c8HUOv2UN3I+HntS99icPHqqneBZlXx6Jh81lW10Bp/uSJt288Mr0SmGYlPnAgBwJGt+WedU0lmz3dmz0Tp3qEtvQll/olrxUt1En5UTt/eH5z+WB+PtuwjnmpW56R+svwQpCwBY2ZCyyXlcRRYaWaQql9KYlyoQ5arpZ5uq8OZ6H0PWWFk+FR5puALJCgDIyJwtIOysTKelX/fsDU2z7ZZ0lVTsKnhWpXrbmj0+TuS2/j5gNCEHh07KAgDyiKdsqGrcdFSN65b1wd+06BHV9WSz97dq+pAda7BjyNpVaHF4dspafcikLAAgi2jKhnXTVrouqzdlhZjVDRw826dpU41V4e6x19FLXRYAsF32/LKJmDV6MuPNybFuT7sn13u2rbyOodrGbl2J9WL9svbQqOgbJWUBAJlEZnHX8ThUKYORu8a4XjlOSbQ0V2PgDblsPzs+KktvQHBZlokhwypXYyGshkczxhgAkEskZZ3XX2rcL9vEbpeN3o7qbVDffaOfdS6I0EgKeoc5MaJYL1818r2TsgCAlS3+7Sc7uwAAQICUBQAgF1IWAIBcSFkAAHJ51efkAQAgH1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAglzZl/Yl0xlfNCXPic+XoVwAAeKUVekr1Q11bc8WGE8eK2dX7f5OyAAAIReyHiYOnvTnWh2lZ/ZnXAQDAqOgSU0dlmL1+lbeN16oqyVgAACIK57zu10o2F4eC7lgyFgCAGDnGuK3UtsGpaq6hbmFyFgCAGHUnzxiu6Zjtu2OZbRYAgKjCHepqTEk5mEmNGD7UpfdKl8ByKcYYAwAgFC5yV6xzTjQLF+qeHlnLHbOVlAUAQOC3nwAAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyIWUBQAgF1IWAIBcSFkAAHIhZQEAyKVL2fi0PN7EPGXdBBPKynl7hpl6gol7AAB49RTOOddUY27KuWODtOwSNbK0eEDKAgBgtBgf6tKfot3LSm8KWf2yXBUAgFeeStm++bfN0TBk2yDtUtbOYGZxBwCgVTivU7ZqZI4aoRmkbIjKLAAAzjnnCi83nXM6ZSfqstRcAQCIKYIoFT2vOoD7aq/slyVmAQCIKPwaa9947I1vGjJYvxoMJW4qxhgDANDr7uQRnaq6AuvdLnsIqrfyTlvulwUAQFj620/crAMAwFwLU5aQBQBgtomUHTpa+0cMdwIAYK7JuqzX70o1FgCA+ZiTBwCAXEhZAAByIWUBAMiFlAUAIBdSFgCAXApnTgoghD9mPGHpCundAwCwW2ukrJo0gJQFAMA5NydlJyWmzpuFlAUAXFOkLAAAuciU9Wff6ZfwQrN70LQ/CFXWdVVIZX0YV7A3N2xleEWnrPy1KbXfg95IWR/43UcAwFYNKRtMI+s98tJOVT3NuqxYRqWg/zDYYFOpRcWEtcGMe1UTbh8AgK0YUtaPKTGgyUhZv3nXTlldObW2Ft2k95oZs0wOBADYvki/bCzerD7X6X7ZMbOt9WP9sn0Vu19cDmU+1CXVVwDA1qVS1gjG41O23YFVBfV2Lzplq0Ztyg9rQhYAsHVXVpcVKRuvy05sqo9ZQhYAsAt2v6yscq6askaitw3D9qv6yNqYbQhZAMAuiDHGXsusGgWcSlmdjcmU7ZqE/X2Nr4ZLhiOLy7L0cpoxxgCAjRItxpH7W6dTVg1USqes8/peh9t0xZ084rVZI5JJWQDARu1tTh7u4AEA7MfOUpZxTwCAHdlVylKRBQDsyl5SVo/QAgBg+/aSsgAA7A8pCwBALqQsAAC5kLIAAORCygIAkEv2lI38WtRGNwsAwIr2krL6VllSFgCwfXtJ2dhU7wAAbBcpCwBALn3K+vPkBBPQtZO6FmpyHmMGH+dS0+oEWWk2BKvNyueGSfIiE/+kJhXyDstbi5ZnAEAWhXPmhLLhNK/+lK5jMPnJqWamUz+MOJGy8c0Ga/opqzLXPwj9Brx3S8oCAPIprGqhl1LGjK4+mZRhw26Yaam6bGSz6ZQ1GqWDlxk5BQC4eoWZOUaLcSSTvPnbrd7TZS3G9maNNcVmzQMUG7Ybl0lZAEB2hRl0EykrekqrRi5gxNeClI1u1lhTp6xO6mQKM5QKAHAljqjL6idUyh5bl01s1ljz5LosKQsAyK6I9qVGU1YvL3peY1283nBhfxjVsK3EZo1X5/TLRivjpCwA4EoUTifh0Cc6K6T6Vl6vthq0Aavxy95oX3PklL1iuqarxhhHVw2znT5aAEAW3f2y/u2yk6Of4nfE+i+W9cGuCnvr6vt+7M0Oh2jfL+vfVRu0SpOyAICrZ//2E4NwAQA4nZmyhCwAACvo+mWDllnGBgEAcKquLhv9EWAAAHCs7HPyAADwyiJlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQFACAXUhYAgFxIWQAAciFlAQDIhZQNNFVRFFVz5Vs+1GVRlPVh9uYWr5Bxa01VFEWx4uFcuQWXfd0TD+BaI2UDpOwVrnrkzjJcnhVTtqnUy/k+UgC2jpQN7CZlNyNIldw7O3NiTVyp8OUNHDOAMyFlA6TsUqTsxMuHutznlQVwMpmy9ndw8UTf+aaLuUNdDi/oxaumW6tqxj3ENhTbUrhe+6J+7B+5vQuP2N+whe6w5aHoLcite7sOIsBr3wxe9c5Duuw2TplcwTsifVyRs2qciv7VyQtlnEBv6/7zYt2JD1n4mYnvTLwc3d3EIYefVnu57oi6l42z029IXYfuaVIWeHXNT1k/cZvaK0916TysUYRpWajYERut5L91noyPh6LM29NYQnoP43Ufv4fvUNfe1r23pAt0nWDRncVTVm03PFmCfe5jsew/H78+ibUmLlTy8OzLET+CMGUnOz3965na3fS7tD9D/kbU6Zg4O9RlAYxmp2wkrIJ19CpBaTNRs/Ff8oo1XXWJVET0kcaGy8T2HRy2VY2JbGd+ykbCwjwXc8+98Wzq+iTWW3Khgi8B4dGKp+akbDKQ9ObTu0u8R7Xv9FX2TsjE2SFlAYxmp2z3/d1qwwuLo3apsLCbbJOWT6sWt2RWJPcaC5Z2J8ErqaQ0wya181jKGkEQDzL73JsrWDXt2PVJbG32hQpfMyNuXGJei7G5G3OJid3F3+L4THBFrBObDmFvh6QsgNGSflmjF1T3lHmvz01Z3RDXPiOXXZyyoXibsX7dTkqREYm0W5Sy6YD0WT3QEzUu9QbD6xN9F0uHyQY5mfjmkiNlp78oibc449NqXeXplDX7y8dnSFng1bRo9NO4lFdmxgrFZSmrXzslZReWaH5n4GTKXnld1l8kWuUKMnbi+hjbXillt1yXnfFpPa4um0hZAK8u704eM7tiba2Jyp1Yan7Kmv1tR6TsMTE7IyljR2J0IAejiI2UjdVDpw88Glhm3syP2bVSNtZRKkcZxT9ki1N2anfhe5zxaY10mpOyABbz75cNR4OKGp4afBQfYCnL0wUtxlbj8TEpG9TpmirSEVmNW0iN8zJyINps6++7qyRbo5/8clu/YV/k3Hu7jsZT/Pro07FSylrnP3hof8jmpGxwaBO7Cw91xqdVfeXp2+vnpWx4BNPvCsB1pX+VQnRdle0NgUFRUwQlhnyl9JNrSb+s3I5/++iylPXfRqJ4k0sl6mKRcj22+fBdmCnrL1nWh1QVyDz3uj9Y80v98PoYJ2OVlNW7jHY6xD5kE3k0rK6SdfIthssmPq3yIlfNkhZjsY/YFzcArwx++wmY4ah+CAAgZYFphCyA45CyQMDvvTYGbwPAPKQsYFnS1QsAMaQsAAC5kLIAAORCygIAkAspCwBALqQsAAC5kLJ5Pfr5p/zt8e/cHxwA1wQpmxfl9R5x1QCshZTNi/J6j7hqANZCyuZFeb1HXDUAayFl86K83iOuGoC1kLJ5UV7vEVcNwFpI2bwor/eIqwZgLaRsXpTXe8RVA7AWUjYvyus94qoBWItM2UNdqjm+1NzVYjIwb7LNdv7NYI6wpiqKomq6tapm3ENsQ7Etheu1L+rH/pGHu2iqq57FjPJ6j7hqANYyP2X9xG3q/p/eWt6DLumC6bDH3FOp11Ty32I5td4Qod6eVJh6+5ArkrKYwFUDsJbZKauCLLqOXsXbXpuWYivhLv2XukX1eu3jsNoc/Ftv6MpRXu8RVw3AWmanbFedVGkVriIyLQzmyTZp+bSorKayfHqvkX1cCcrrPeKqAVjLkn5ZoxdU9qMKotd0Rsr6Nda+aVguuzhlQ2eqzFJe7xFXDcBaFo1+GpfqYyvZGrssZfVrp6TsuWquIcrrPeKqAViLdyePmV1WYo0LpmJ2WcrqpWWv7pKU3VbMUl7vEVcNwFr8+2W98UpdpXUYyqQGH0XGCR/qMjLy1020GFuNx8ekbDBWqqkYY4wluGoA1qJ/lUL0jXb3pw6hZN+Cql+JDPwVW4/2y/r34x7bYqzfBvfLYimuGoC18NtPeVFe7xFXDcBaSNm8KK/3iKsGYC2kbF6U13vEVQOwFlI2L8rrPeKqAVgLKZvXo59/yt8e/879wQFwTZCyAADkQsoCAJALKQsAQC6kLAAAuZCyeZ19FA9/x/2d+4MD4JogZfOivN4jrhqAtZCyeVFe7xFXDcBaSNm8KK/3iKsGYC2kbF6U13vEVQOwlmucstE56K8S5fUecdUArIWUzYvyeo+4agDWQsrmRXm9R1w1AGshZfOivN4jrhqAtXgp21RFUVRN+9+WSinxSlE14oVDXVqriOWrxoXJ11RF8Hh8KDaq9tcdabf54RVvd3Jfej9XhvJ6j7hqANYSpqxIrTblhgw71KX89xhbh7r0FqubYXNjsjV1fQgXLQu1h2GNPvLlsQ1b645U5qY6WH8JUhYLcNUArCVMWT+L/KTUC7evRJpmVUwazx7qsijL0n8sYtFfWT4VHmm4wtmSVaK83iOuGoC1mC3Ggl/39J4da6FtvVEHmq6oip2MUVrWjR+tYovpNc0m5GD/pCyW46oBWMuslJXRNrTDeguLHtQg+3Tb7hCWTVWU9WGswY4ha1ehxR7NlFUrkLI4ElcNwFrm12X1i1Z10+gudWME9wt3aXqoy7HFuX3sLUJdFmfCVQOwlol+2TFkdWapwUbGJE8YIAAABPlJREFUGh5Z12wrr80Yqk1VFFUtRj5F+2UjQ6OsSG0PkJTFclw1AGuxxhj7I3m9gcReyo2351TWvThNNcZgOLS4LMeaq2uqoixLLxJ1ivu5GhscFTRhM8YYy3HVAKzFajGO3S7r3xOrBwtHemCt7tqwImynoFx/akSxWr6sD9wviyNx1QCsZapfFqehvN4jrhqAtZCyeVFe7xFXDcBaSNm8KK/3iKsGYC2kbF6U13vEVQOwlms8J88mPPr5p/zt8e/cHxwA1wQpCwBALqQsAAC5kLIAAORCygIAkAspm9fZR/Hwd9zfuT84AK4JUjYvyus94qoBWAspmxfl9R5x1QCshZTNi/J6j7hqANZCyuZFeb1HXDUAayFlO5l+XZLyeo+4agDWQsp2SFkMuGoA1kLKdkhZDLhqANZCynZIWQy4agDWYs1811RFISOne+w/6Q51WRRlfTjUpfFqYsV+3VZZH6LPquRrX1ePx4dyb3Kz/ZE27eaHV/zdiX3p/ZyC8nqPuGoA1hKmrJ9QftLJB31IDUs3lbfuoS6HoOoTeXwgXqqb6LNNJbfYHp7/WB6Mt29x1P2Rytz0D9ZfgpR91XHVAKwlTNl4xjovC40sUpVLvel2yyoQ5arpZ5uqKMqy9B6LQ/FXlk+FRxqusGaySpTXe8RVA7AWq8U48cREWvp1z97QNNtuSVdJxa6CZ1Wqt63Z4+NEbuvvA0YTcnDopCycc1w1AOuZkbKhqnHTUTWuW9YHf9OiR1TXk83e36rpQ3aswY4ha1ehxeHZKWv1IZOycI6rBmA90ykb1k1b6bqs3pQVYlY3cPBsn6ZNNVaFu8deRy91WayGqwZgLemUTcWs0ZMZb06OdXvaPbnes23ldQzVNnbrSqwX65e1h0ZF3ygpixZXDcBaJlI2iMehShmM3DXG9cpxSqKluRoDb8hl+9nxUVl6A4LLskwMGVa5GgthNTyaMcbocNUArGUqZZ3XX2rcL9vEbpeN3o7qbVDffaOfHQ5rsmLsHebEiGK9fNXI907Kvuq4agDWcvxvP9nZBR/l9R5x1QCshZTNi/J6j7hqANZCyuZFeb1HXDUAayFl86K83iOuGoC1MCdPXo9+/il/e/w79wcHwDVBygIAkAspCwBALqQsAAC5kLIAAORCyuZ19lE8/B33d+4PDoBrgpTNi/J6j7hqANZCyuZFeb1HXDUAayFl86K83iOuGoC1kLJ5UV7vEVcNwFpI2bwor/eIqwZgLaRsXpTXe8RVA7AWUjYvyus94qoBWAspmxfl9R5x1QCsRaXsoS6LjjepnXh+fKGp/MXahaomfOXVRXm9R1w1AGuRKXuoyzYku0d1I57vM9N7INNUvkDK9iiv94irBmAtImUj07IHTzeVrs/21VdyNUB5vUdcNQBrkXXZpgpaiq3s9au8bbxWVUnGWiiv94irBmAtfr+s6H6tmuApKeiOJWNNlNd7xFUDsBZzjHFbqW2DU9VcowuTsybK6z3iqgFYS+xOnjFc0zHbd8dGOnVfeZTXe8RVA7AWb/RTNaakHMykRgwf6tJ7pUtguRRjjHuU13vEVQOwFq8ua94V65wTzcKFuqdH1nLHbCVle5TXe8RVA7AWfvspL8rrPeKqAVgLKZsX5fUecdUArIWUzYvyeo+4agDWQsrmRXm9R1w1AGshZfN69PNP+dvj37k/OACuif8P8uAX8zMfQLEAAAAASUVORK5CYII=" alt="" />
actionerror与fielderror区别:
不说增加和展示以及存储形式
当使用转换不了的类型进行表单提交的时候,因为转换异常,属性获得的为空。在actionerror中依旧进行校验然后增加对应的错误信息;在fielderror中,如果转换错误,自动在fielderror中增加对应的转换错误的信息,该信息是默认的。
比如:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbkAAAE8CAIAAADSS1gUAAAYyUlEQVR4nO3dP4gdV3vH8em2UBFUbCWEMCakMOIK3i1eIkyQCG4MS1SJSL68xZJgQ1TEkEaESHZwcYtNJYMgpNpI+/q1XrjgbCAiAoNBsl/0FsYLCovVWCTZ2MkmvKjY7klx78ycc+ac88zcnb873w9T7J07M/fKZ+fnM3Nmz5MIAECTdP0FAGAAyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAV3NWHn0v//SpbP5c1q/JYb2HPqEncm5dNv9SfvVUfnzt2+C1vHgqn38qf7YpF87JuVtyXMfH3rssyRm5cEEuXJCrfyq3f13HQQG0Ts/Kw7lcvCYHJZLj7/9YkiRfbj0p9Q3mU2uv4jKdl90ymQY/5dltY7M35XlxiyO5tmZssya7R6W+f8xLuWx+vbPyqF//AwFQlpKVh4/lD9YkSWT9HflWjcuXcsWMm8vyssQ3aCcrZ5N8s/O3/ds8/sA62uV7Jb69yP5M+1all8ms1CcCaF80K/dlw8i+tQ35rffq1fDyvqwZJ/8Hj/Vv0EZW2v27288Cmz2XN82jebufBWQlMAZKv9KJpywuzW7aCROhhaz84b6xzXl5Nq8z1MhKYAz0+5XeuGwoK7NYNAPIm5XZSjGDL5CV96/k25y/be9Sb1aGbwKEmLuTlUBvlRoHd+Jya29QWfmDXDE+/c5zshJAZWWfGVrm1JpszUUauwZvIiutC/DFLUiuwQFUVPr5ymN5tCW3tLEaqwc6kf0SB246K+9dPlG/T0VWAmOgZOW3M7l4S16Vfiy7d1m5L5PEt4GzvvxS+AiyEhiDWFYe7Mh6IkkiZ/5Qf1pooW9Z+fxOIOkaykruVwKnVDArf/cvy6BcLGvnZOdAP1y/svJYPjhLVgKoQbhfeSw7160Hy5Mzcucr5XC9ysrDHfv7r5RlKq7BgTFQ7ld+dduOmzXZehSbVKJ8VtYYMaHQufNmuFfI/UoAVejj4N/ety/GN+T570REpifLmqaz8mi30KkkKwGsqtQzQ68eeQZ5ep6V334STTruVwKoouzzlYeP5e13ramGep6Vx4+WP1+7dqIsU5GVwBisPtfvCbMyY97i3NpbrlTHdmbZrdDQ2M6i53hWHj+KffrJcQ0OjEGprNy5Llc/lCff6VOFrzAOvrPpSUBvVppTYOhZKTJN5M07gQ24XwmgilJZuZXOYrn2e/KLz2NbrpCV5p+Wx7PSu2UkK2cbsnNIVgKoQYmsfCbnjfM5f7DRZ4WsvGU8Lv53/7Zc6c3KT97KV+5kBR7CWfn4n+U4tEF9Wak6/ErePSdJIsmazL6tvDuAPtCz0uk37USr0FTOyiPZNA6e5bA3K6e+LfU52RrNymO59YZs/o08/X55g8L8ktO5yEv5I7OuxsRfiuPFF/Inb8gnJCnQV3pWmncJ1firnJVP5Gy2/XnJijt4stJMt7ckT5U6snIW/aLWP8r+iOPH+fc/8/vytJiVhT8fWp9aFS5f7cnb59J312VO8TKgl7SstPt9oapemapZaXVaN+XIt36ROMeP/Ft2m5W7xgNJZz+QY19WukdI5BdfyN5fyPufyWsROZRNs6jRZs9qBQMQETUrj+dWn0gtY1s1K93qDinzSfJF4jy5FYjsDrPSLnl257lIICvlUKbrkiSydk5mX4mk41RnLsq9L+XV3PrLqI1ZPaXJAdRIyUqrDOyazLWTuFpW2llz/bNlRhwfyV+96SbO7fPGlv8oy78eOpbPrteQlRUW4yPM/zhZf9CflSJHe/Kz6/Litecf/s4/2P/dGAIC+kfJSnOQennle+ICDFniOJNL3n8p0zXPxtO5dVswSeT+E3/SrW35/g0NZaVdDD2r7mtm5fo1+a4wFHb0vczesZJx90jkUK6n/6kvvu/ZC0C3oln5xEqozR0RqS8r7ft0yWV56YwjpcvtZ57xpVtnPVteue/7VzSTlUfP5L2L1pdfqFqJKHum8uV9+dl78uWrEzUngIbEstK8RZgkcv8HEaktK198KmeMNZfviYg8u+1uuXZFvvtXeWPN3fLR9cIx12THOyzS5DNDr34jH769rNe2cGjffIwvaxv+R4gA9E0sK//6DePEviKLqKzxGvz1C3n/4jLmdo9EzMHuNTl3Qa5+uLzBd/xKZu/KmrGlOfizfkHeuiqPQtO2NzkO7vXqS/nzq7J+JvZfYP2CvHevQiEjAN1S7le+/lGefCqbP5d37jXz+cfy5UzeKfe3fb+9V3ZLS+tZCeD0WX2eIQAYD7ISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKCLZOX+bJLkJrP94Mr51FiXTOcSWskh6zskgDbRrwQAHVkJADqyEgB0ZCUA6MhKANCRlQCgIysBQEdWAoCOrAQAHVkpIvL5r79gGeLS9S8ORoSsFBHhrBsiWg1tIitFOOuGiVZDm8hKEc66YaLV0CayUoSzbphoNbSJrBThrBsmWg1tIitFOOuGiVZDm8hKEc66YaLV0CZtXvTlbN0L86m1wpit25qq25zv2918Ol/uNZ3nnxA6UOhIxf0Wb7qv7W9e/Ij5dLlp4azb20o2tg/Ml5ls/cH2RnEl2kNWok0rZ6Wdm/NZ+qO1l/VimVdu5hnplWVX+tL82djO2S8LQuuTnEi0PsPc0c3KNBeN+DvY3tjay35cvuNdiRaRlWjTqlnpxFFwH3cX63iLzDOOUvxI+63lpu5+i9fFLmzhZ/dAKa1fab+TpBmZOdjeKK5Ew8hKtGnVrFx27ZzMKe5iJFMxXtWrfHO10XGMJbL+qZ7PKJ+V3i5kOFnRILISbTrB/UrP3UG7MqFzq7FsVtq9x/Ri29y2clYW2SFfNisPtjfsXmV6z5Ko7ABZiTadZGwn3yoNH9/1rbV3+ax03ztJVvqv6g3lsnJvKxSK3gtzNIysRJtizwx5E8iXO/mGsbCslpXu1ubdzipZWSosS2RlOCiFwZ1ukJVoU/T5Sms0ZtmBzAZqnKGVwFj2/mwSGJ0W5Rrcdzm+SlYWRoLm0+g4uIh4nxlys3BvK+tJEpWdICvRJuVZdOOe4fJ5xiyS/I8suu8EBqeNowfvV9rPb656De7+M9TnK81nKZcJaK1KV5uPV3IB3gWyEm3i73ZEOOuGiVZDm8hKEc66YaLV0CayUoSzbphoNbSJrBThrBsmWg1tIitFOOuGiVZDm8hKEeo4Dnbp+hcHIzL2rOz8bGdZben6FwejQ1Zy1g0PrYb2kZWcdcNDq6F9ZCVn3fDQamjfeLLSP/MHZ90Q0WpoH1nJWTc8tBraR1Zy1g0PrYb2kZWcdcNDq6F92ly/yXRuzo3mZE1wXjZ7Ljff9t7Jz93yZfZca3aFCvPziuV0ix9nflb+OZx1Q0SroX1qVibBSXP3ZxPzZ2dWYOOtmW+C8kWVXHdTu+DZ/mwSrWPrzqVZmMKyEJtk5alAq6F9albaPclwQQanjkRxI3+VXHf288nELm0bLrHrLfQd+TTPv0YKZ102q6+ngkQd61ELshLtK3MNbvDX08kujs3SiYEiZu7OdgHxyWxuB2SocG1hT+9FeeHzo1lpzXRuzHVe13rUhaxE+1bJSjOgsitba2O7XK19QPdqOYu8+TSZzPbz3mQelf7ubKA2T2gHNSudiMtCrq71qA1Zifat3K/01ll0un6e24iSB6lZVmdRADy/hl8WBLcq7zTdryQrB4OsRPuq3a/Mo9JbvttT7TZQBNfs9y06kvM8GufTJJnOjHGd4P3KYInIYjAuviDX4KcCWYn2lRgHt0ebrcFuK6uSLEanvqd+glVyszEdc9B6MplYweYpXOuOcvuKSbo3BbRxcMZ2BoGsRPtKXIOHHq8s1sN1y3k7uyhPY7oX9P4blN6vEhljz7bm+crTg1ZD+yrerzx1OOuGiFZD+8hKzrrhodXQPrKSs254aDW0j6zkrBseWg3tG888Q36cdUNEq6F9ZGX3JQlZVli6/sXB6Iw9KyvpPCBYVlu6/sXBaUBWVsBZN0S0GmpBVlbAWTdEtBpqQVZWwFk3RLQaakFW+nmfl+KsGyJaDbUgK/3IylODVkMtyEo/svLUoNVQC7LSj6w8NWg11KL8nGy+SrKJMyVlOvWZb+K1yhVyC2ud/HJncnOmFQ7O4Lb8pvPF4bN3glPM5Z/DWTdEtBpqUWWu32ydr7SDM5tuYQ7KihVyvWudqrlOCTSjPo8zLbqdqm4Ni+KXtbcgK4eNVkMtqtWQcK9MjUTzFJEI1I9IDxSrkFti7XyaWLOn51Hp2dlcVfymoYoTyjU4k6gPAlmJWlSaZ8hfdDucef5q4qUq5Ebq5uaBuLg/kL+OpK+b6p6L8sJXj2YlxXmGgqxELapnZZG3WJl7gMoVcr1rs8hLqzymYZlHpb87a3w9f1b67q1GspKij4NBVqIWlbOy2E9ciPcrV6+Q66xNM3E+zbuly9feqmnW16uxX0lWDgZZiVpUm+s3EpaeO3zhC/RqFXKttYuOZB6Ni/CcTY39Qvcr/QM/wX8o1+CnA1mJWlScF91TetYZB7cvrK1XFSrkBurmZq8mE2vQ2qqYm36CMw5uj3J7otQZwk+sfqhvHJyxnUEgK1GL6jUkzAcoi89XzkOPV1atkBuomyuFIAx0Uq2vqYx6u9tP5+a/nWeGho1WQy1q+7sdfwKdLpx1Q0SroRZkZQWcdUNEq6EWZGUFnHVDRKuhFmRlBZx1Q0SroRbMM1QBZ90Q0WqoBVlZQef1CFlWW7r+xcFp0GpWdn7OsKy2tPlLAvRT21nZ5sehFrQaIGQlVLQaIGQlVLQaIGQlVLQaIGQlVLQaIGQlVLQaIGQlVLQaIFpW+ovRBiZMC8+Vlr5TOOv2tqw5G7OJHM25HM3JcJngsQNkJSDRrPQXo/VVrLUm8TWr3ix/9mVlmotG/B1sb6TTgh9sbyzf8a5Ei8hKQGJZGZgMo7DamrU8myLXW21C61fa7xTrKRxsb1BkoXVkJSDRfqW37GyglLZVVSKZTKcT35xD5bPS24UMJysaRFYCotyv9JSdtUsz+Ko8OLVrTGWz8mB7w+5VpvcsicoOkJWAlBsHN8vO+istFjf2pmW5rNzbCoWi98IcDSMrASn9zFAekfGwTG9T+m92lsjKcFAKgzvdICsBiY/tBMrOFgvKWu8sc9TcqsozQ24W7m1ZpbSJytaRlYDE+5VK2VnnnULp2TwtY88MGfchrVXpavPxSi7Au0BWAsLf7UBFqwFCVkJFqwFCVkJFqwFCVkJFqwFCVkJFqwFCHUeWMkubvyRAP3VWH7zz859ltaWrXxigW11mZVcfjZXRahgtshIV0GoYLbISFdBqGC2yEhXQahgtshIV0GoYLbISFdBqGC2yEhXQahgtJSvD07JZE7NNZvPC5L7mvG1GNch04jbOuiGi1TBa0aycT/P0M+fxLUxWaVaZKG5tvCArh41Ww2iVvwY3i0fYwZmt8c2P7u6aMs46a47fdDrf8ivRHrISo1UyK9ML6kUaFqPSKrDjT1LnEt5/1nkrgJdfiYaRlRitkjUkpnMzDT3RV8jKIjtc7bPO7DBmJXXKr0RLyEqMVqw22aRY97t0v9JbH9zkXIOnsZdVKyu/Eu0hKzFa4ax0A9G4I1msaLvogpr3K7WwzM86q+p3moDlV6JFZCVGK3INboZlejlujd5kSeq+W6jpOJ9GxsHNUrZZx7H8SrSIrMRoKc8MGTcb3c6k9XjlfqGraT6ZqT1fmde13drKeovlV6I1ZCVGq66/2/E9FhTFWTdEtBpGq6asrByVnHWDRKthtFbMyuwGZPqqxMi3jbNuiGg1jNbK/UrrfmS1LqWIcNYNE62G0WKeIVRAq2G0qOPIUm3p6hcG6FZnWdmmzvOFZbWl618cIDeWrOz6K6AyWg29Qlaip2g19ApZiZ6i1dArsaz0TCdkKE6goai6Q/zjq+CsGyJaDb3SZFY60w2RlaiCVkOvrJ6VqsgEmKWQleNGq6FXxpaV5We9ZH7MjpGV6JUyWWnPvpa+a0Xf8sV88YePk9nMLiMxme3nO/gPlx0le8db4czZ0ZO/2ar8r9Try0oCtD1kJXpFzcrClL7WKyuznG6gt19pbOPMuGG/LBwwUH/XP2/mdG4dkKwcIrISvaJmpd1pM4ZrPFkZLsHj3cbcIFSWwn8NbkwB5+zonRzOzcrtZX2zPPbyOYSz1cUtzY0oIdk4shK9UvF+ZSikfPci9fuVefL69g/dr7Tr79rD7fuzieeWqJ2VadDlVSic2hR5HTRjy+wn+pUtISvRK6tkpSfeVs/KxQf4uoPWxwfr74obuZ7Ro8A1eBqB/pJnzpbFlWgWWYle6bxfaWRluF+pHCoNy0BUhrLyYHsjzco8AMnKviAr0SvV7lea3b9as9KTy2apyEj93ez1YhTe+0wS/cohIivRKyXGwa1rXWekOpaVbsJFs9KpMO6Owcfq76brJpOJlbbaOLh1FzINy/wmZigrGdZpCVmJXilxDR54HlLPSmcYJp6VYt2TzB7rNJ4ZMt4rNWoeykpnvNtenZfS9WZlNhZOYDaOrESvnJZ5hqKFJKucdVxl9wVZiV45JVkZGtVZUM+6va20n0hU9gZZiV45FVmpVScvkZU8ZN47ZCV6ZehZ6Y4/eXHWDRGthl4ZelaWwlk3RLQaemUsWckyxKXrXxwgN4qsPInO84JltaXrXxycNmSlgrNuiGg11I6sVHDWDRGthtqRlQrOuiGi1VC7zrKycsncjg7LWTdEtBpqN/SsdB9DJyshtBoaMPSsrK/YYwBn3RDRaqgdWan43D/3ZZy6JX923iyyErXTstKeJ60wjaRR5na/sL13PkvvtGqFxPNeWjuHNddlU10GJn6LTSpnfS1rr8lsv96sZM7glpCVqF00K6NlaH1lbgOFaaUwv6TzZ9xKVoYPW9jTzkpfkcdCCR9vDd5msrL8BjgRshK1i2SlMqFurCZtvoFnXnPJ15TuVwYOG89Kz2V+4W11XMjNyhXr5WZzGTn9yoPtjYTYrB1ZidqFs1IrQxu/4WgXpo1XhKyQlW6921hWer9guLK42NVzU3ZWnqRerhSvweleNoSsRO2UrIyUoQ312rI7f8YGnhCqkJVavdtYVrp5G81S30BR4Bp8hbpm7gZbWxsEZUPIStSuxn5lpG7jSfqV8XKQtfcrS2blCvVyxe14cvHdGLIStYvcr4yXoS1GTaQwbejWpzWkXajBWKbe7Sr3K4Md43b7ldsHaeCibmQlahcbB4+XoS1TwtbpORauqp0xdmtEuly92xK9TmccPLhrMaHD4+Cr1MsVT5iadztRH7IStVOer4yUoQ1eo6dbuxvYtXP93VJr33L1brOv6H++0n4Ks3CdXzErM6vUy/V2PBkIbwJZidpV+7sd30DxKVflrOOxyr4gK1G7Slk5wqistV6udXMTDSIrUTvlfmXhWrfJP73upRJZmV2Yh3Mw3YikbAdZidop/crgH1OPBmfdENFqqB3zois464aIVkPtyEpF5/UIWVZbuv7FwWlDVgKALpaVjwaotf9wAEZFycr/GxSyEkBDlKz830EhKwE0hKwEAJ2SlUeDQlYCaAhZCQA6JSv/Z1DISgANUbLyv+vxy/eSS3/7m5oOFkZWAmhIn7My26vs7mQlgIb0OSsr705WAmiIkpU/qXZv5hMR3dz96afdm8mlj7/J3lv8vHszufTxx8st07cLK3d9G3zzzceXrA+IICsBNETJyh/jvv7oUnLpo68XLx7evPnwxx8f3jTXLH9+eDNJkpsPl+uKK7/+6JL1c7ZptmV2zBiyEkBDTp6Vy2BLhbLSXLnYxbuldy+yEkDHlKz8L9WDG9kV8o0Hi9eXPnqWvbf42Vz57KNLkS29e5nvxpCVABqiZOVheQ9uJMmNB4cPbiSTu0+zVYufnZXJjQfFlZG9zHdjyEoADTlZVj64kWfY07uTyd2nh0/vThZRePj07iQphl0WldWycrkPWQmgEyfsVxpX4FYaLl7fNcPO3axCVi5iN1EDk6wE0BAlK/9zUMhKAA1RsvI/BoWsBNAQshIAdEpW/vugkJUAGkJWAoCOOo4AoKM+OADoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHRkJQDoyEoA0JGVAKAjKwFAR1YCgI6sBAAdWQkAOrISAHT/DxL0vDmm5J3wAAAAAElFTkSuQmCC" alt="" />aaarticlea/png;base64,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" alt="" />
在类型转换中出现错误fielderror增加默认错误信息在form表单使用的不是struts标签仍然有效。
Struts2 validate校验的更多相关文章
- Struts2数据校验
Struts2数据校验 1.常见数据校验方法 表单数据的校验方式: 表单中的数据必须被效验以后才能够被使用,常用的效验方式分为两种: 前台校验:也称之为客户端效验,主要是通过JS编程的方式进行表单数据 ...
- Struts2 更改校验配置文件位置
@(Java)[Struts|Interceptor] Struts2 更改校验配置文件位置 在Struts2中提供的拦截器校验ValidationInterceptor,该校验器中默认的配置文件位于 ...
- struts2 自定义校验规则
自定义校验规则:(了解) 在Struts2自定义校验规则: 1.实现一个Validator 接口. 2.一般开发中继承ValidatorSupport 或者 FieldValidatorSupport ...
- Struts2输入校验
1.编写校验规则文件 (<ActionName>-validation.xml),文件放在Action类文件相同的路径下校验失败返回input的result. <vali ...
- struts2 之 struts2数据校验
1. 数据校验一般分为2类:前端的校验(js校验),后端的校验(java代码):实际开发中大部分情况下都是采用js校验.在对数据安全要求较高的情况下可能会采用后端验证. 2. Struts2提供了后 ...
- Struts2 Validate
1.自定义action继承ActionSupport 2.复写validate方法,因为ActionSupport实现了Validate这个借口,而这个借口中定义了validate方法 3.当请求时, ...
- 编写自己的validate校验框架原理(转)
原文链接:http://blog.csdn.net/a973893384/article/details/51517388 具体思路: 我们使用自定义注解实现.然后需要解决的是两个问题: 1是如何扫描 ...
- 第六章、Struts2数据校验
一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...
- 06章 Struts2数据校验
一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...
随机推荐
- C#_微信支付V3
基础问题先排除: 确保 商户功能 审核通过,会有官方邮件 支付授权目录(注意看文档,大小写关系很大 点击支付按钮,提示“access_denied” 网上有很多关于此问题的解决) 点击支付按钮,提示“ ...
- 每日一笔记之2:QT之坐标系统:
以前一直多单片机开发,也没怎么使用过大的显示器,第一次学习,备忘: QT画图系统. 绘图,通过QPainter类实现. Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同 ...
- PHP工程师突破
身边有几个做PHP开发的朋友,因为面试,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展. PHP工程师面临成长瓶颈 先明确我所 ...
- shelve模块
#coding:utf-8 __author__ = 'similarface' #email:similarface@outlook.com ''' shelve模块: 映射容器 存储对象,被存储的 ...
- VB6 GDI+ 入门教程[9] Bitmap魔法(2):数据读写
本文转自 http://vistaswx.com/blog/article/category/tutorial/page/2 VB6 GDI+ 入门教程[9] Bitmap魔法(2):数据读写 200 ...
- servlet的配置和上下文
一.Servlet配置对象(ServletConfig):Servlet初始化时,容器调用其init(ServletConfig)方法,传递该对象. 1.获得对象方法: (1).直接使用getServ ...
- jQuery 2.0.3 源码分析 bind/live/delegate/on
传统的时间处理: 给某一个元素绑定一个点击事件,传入一个回调句柄处理 element.addEventListener('click',doSomething,false); 这样的绑定如果页面上面有 ...
- Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法
参考:Visual Studio 2012出现“无法访问T-SQL组件和安装了不兼容伯 DacFx版本”的解决办法 Vs2012的下载地址: https://msdn.microsoft.com/en ...
- 记一次web项目总结
功能需求,登录,用户管理,新闻管理. 用户管理: // 分页查询所有用户信息 public List<User> userInfo(int index, int pageSize) thr ...
- matlab c# 混合编程
MWArray错误: matlab 64位 vs 32位 1. visual studio没有专门的64位版.但32位版可以在64位系统上面正常使用.2.安装VS2010的时候,在安装选项里面,选择了 ...