Struts1表单校验
ActionForm中对表单元素进行校验
@Override
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if (StringUtils.isBlank(regUser.getUsername())){
errors.add("username",new ActionMessage("用户名不能为空",false));
}
return errors;
} JSP中需要显示错误信息
第一种:${requestScope.get("org.apache.struts.action.ERROR")}<br/>
第二种:${requestScope["org.apache.struts.action.ERROR"]}<br/>
第三种:使用<html:errors>标签,首先需要配置国际化资源包
<message-resources parameter="org.zln.struts.resource.errors"/>
在validate校验方法中
errors.add("username",new ActionMessage("error.username"));//这里的error.username是资源文件配置的key
在jsp中
<html:errors/><br/>就可以对错误信息进行输出。输出的是ActionErrors对象的值,是key对应的值还是硬编码值,取决于ActionMessage对象的初始化参数 注意:资源文件查找的顺序:语言_国家->语言->操作系统相关->默认资源文件
errors.footer=</ul><hr>
errors.header=<h3><font color="red">Validation Error</font></h3><p>You must correct the following error(s) before proceeding:</p><ul>
errors.prefix=<li>
errors.suffix=</li> <html:errors property="username" footer="" header="" prefix="" suffix=""/>
如果配置了footer,国际化文件中的errors.footer就不会生效
表单校验只适合进行基本的字段校验,但是对于一些复杂的逻辑性校验,需要在Action中进行校验 package org.zln.struts.action; import org.apache.struts.action.*;
import org.zln.struts.form.RegUserForm; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Created by sherry on 000020/5/20 20:37.
*/
public class RegUser extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
RegUserForm regUserForm = (RegUserForm) form;
/*ActionMessages是ActionErrors的父类*/
ActionMessages errors = new ActionMessages();
request.setAttribute("username",regUserForm.getRegUser().getUsername());
/*业务逻辑校验*/
if (!"zln".equals(regUserForm.getRegUser().getUsername().trim())){//假设数据库中获取到的用户名是 zln
errors.add("username",new ActionMessage("用户不存在",false));
/*将错误信息保存到request作用域中*/
this.saveErrors(request,errors);//request.setAttribute(Globals.ERROR_KEY, errors);
//return mapping.findForward("FAILURE");
return mapping.getInputForward();
}
return mapping.findForward("SUCCESS");
}
} 页面中对于错误信息的输出,与表单校验是一样的
国际化->参数化
资源文件
error.empty={0}can't be empty
填写参数
errors.add("username",new ActionMessage("error.empty",new String[]{"用户名"})); “用户名”,这个参数也可以国际化
Struts1表单校验的更多相关文章
- JavaWeb -- Struts1 使用示例: 表单校验 防表单重复提交 表单数据封装到实体
1. struts 工作流程图 超链接 2. 入门案例 struts入门案例: 1.写一个注册页面,把请求交给 struts处理 <form action="${pageContext ...
- 利用jquery.validate以及bootstrap的tooltip开发气泡式的表单校验组件
表单校验是页面开发中非常常见的一类需求,相信每个前端开发人员都有这方面的经验.网上有很多成熟的表单校验框架,虽然按照它们默认的设计,用起来没有多大的问题,但是在实际工作中,表单校验有可能有比较复杂的个 ...
- AngularJS 1.2.x 学习笔记(表单校验篇)
https://my.oschina.net/cokolin/blog/526911 摘要: 本文首发于 blog.csdn.net/vipshop_ebs/article/details/39472 ...
- angularJs表单校验(超级详细!!!)
html代码 <!DOCTYPE html> <html ng-app="angularFormCheckModule"> <head> < ...
- bootstrap+jQuery.validate表单校验
谈谈表单校验 这大概是一种惯例,学习前台后台最开始接触的业务都是用户注册和登录.现在社会坚持以人为本的理念,在网站开发过程同样如此.User是我们面对较多的对象,也是较核心的对象.最开始的用户注册和登 ...
- 关于jQuery表单校验的应用
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)
/** * 表单校验函数库 */ /** * 判断email格式是否正确 * @param $email */ function is_email($email) { return strlen($e ...
- 关于jQuery表单校验
<style> .red{border: 1px solid red;} .wrong-tip{color: red;} </style> <form action=&q ...
- jQuery.validate表单校验+bootstrap
谈谈表单校验 这大概是一种惯例,学习前台后台最开始接触的业务都是用户注册和登录.现在社会坚持以人为本的理念,在网站开发过程同样如此.User是我们面对较多的对象,也是较核心的对象.最开始的用户注册和登 ...
随机推荐
- 路由器基础配置之ospf基础配置
我们将以上面的拓扑图进行本次ospf的实验,目的是能当三台pc机互通 先配置好pc机的IP地址,注意一定要给pc机设置好网关,接下来配置路由器的IP地址 router4 enable 进入特权模式 c ...
- Redis学习推荐
Redis快速入门 https://www.yiibai.com/redis/redis_quick_guide.html Redis用途和使用场景 https://blog.csdn.net/wei ...
- 自定义控件,继承自 ListView
public class MyListView extends ListView { /** * 如果在xml中创建并设置了style,就会调用三个参数的. * * @param context * ...
- STL——泛型编程
1.指针的算术运算 对于一个存储int数据的vector,我们要查找某值是否存在于其中,采用下标操作的做法如下: int* find(const vector<int> &vec, ...
- Python3爬虫(二)网络爬虫的尺寸与约束
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.网络爬虫的尺寸: 1.小规模,数据量小,爬取速度不敏感,Requests库,爬取网页 2.中规模,数据规模较大 ...
- ArrayList底层原理
ArrayList底层采用数组实现,访问特别快,它可以根据索引下标快速找到元素.但添加插入删除等写操作效率低,因为涉及到内存数据复制转移. ArrayList对象初始化时,无参数构造器默认容量为10, ...
- Java - 问题集 - linux下,jar: command not found
linux下的找不到jar命令解决方法如下: 1. 确认jdk是否已安装 2. 检查jdk环境变量是否已设置,并且确认该设置已生效 3. 1,2两步均正常时,建立jar的软链接 # cd /usr/b ...
- Virtual Host on Apache(Apache上建立虚拟主机)
0. Introduction Usually, we want to build two or more websites on a web server, but we have only one ...
- qt 编译unresolved external symbol的错误解决
题外问题:.rc文件报错,里面引用的.h文件打不开. 方法:rc文件移除,然后重新添加就可以: unresolved external symbol的原因: 1.没有添加编译生成的moc文件,添加对应 ...
- Qt 飞机仪表显示
使用Qt简单谢了一个飞机的一小部分仪表,还没有写完,目前只写了一个界面,不过思想应该是一样的. 效果图如下 其中主要由转速表,和下面的部分数字显示构成 转速表代码 .h文件 #ifndef CONTR ...