【Struts2】使用Struts2的数据验证功能
来源:互联网 发布:linux networking 编辑:程序博客网 时间:2024/06/06 03:04
一、目标
登陆页面,当用户没有输入的信息的使用提示错误信息。
当用户输入密码错误的时候提示错误信息。本登陆页面还是沿用之前的登陆页面(点击打开链接)进行修改,如果用户输入的信息不为 用户名:a,密码:a 则视为错误。
二、基本思想
配置好struts.xml文件,在struts.xml的Action标签下,一定要定义<result name="input">XXX.jsp</result>,同时这个XXX一般就是登陆页面login.jsp,因为验证框架出错会自动返回到input,这个返回值是struts所规定,无法进行修改。错误页面error.jsp可以不要。错误信息直接在login.jsp输出。
三、制作过程
1.先对login.jsp进行修改,为login.jsp增加错误提示。
<%@ page language="java" contentType="text/html;charset=utf-8"%><%@ taglib uri="/struts-tags" prefix="s"%><html><head><title>登陆页面</title></head><body><h3>用户登录</h3><strong><font color="red"> <s:fielderror><s:param>error</s:param></s:fielderror> </font> </strong><!--关键是在这里,跳转到action处理 --><form action="login.action" method="post"><table><tr align="center"><td>用户名:<input type="text" name="username" /></td><td><!--以下为错误信息的struts标签--><strong><font color="red"><s:fielderror><s:param>username</s:param></s:fielderror> </font> </strong></td></tr><tr align="center"><td>密码:<input type="password" name="password" /></td><td><strong><font color="red"><s:fielderror><s:param>password</s:param></s:fielderror> </font> </strong></td></tr><tr align="center"><td colspan="3"><input type="submit" value="提交" /><input type="reset" value="重置" /></td></tr></table></form></body></html>
据说不添加错误提示的Struts标签同样可以在页面显示错误信息,亲自实践,发现不可以。
上文最关键的就是<s:fielderror><s:param>username</s:param></s:fielderror>,其意思是指输出名为username的错误信息。其后的password与其前的error同理
这个错误信息可以被<strong>加粗、<font>字体等标签所修饰。
2.之后改写LoginAction.java这个动作
package com.ascent.struts2.action;import com.opensymphony.xwork2.ActionSupport;//要使用Struts的数据验证,必须继承这个类与引入这个包public class LoginAction extends ActionSupport{private String username;private String password;public String getUsername() {return username;}public String getPassword() {return password;}public void setUsername(String username) {this.username = username;}public void setPassword(String password) {this.password = password;}public String execute() throws Exception{if ((getUsername().equals("a")) && (getPassword().equals("a"))) {//这里不再返回一个字段,直接返回一个类似于const常量的东西return SUCCESS;}else{this.addFieldError("error", "username or password is wrong!");return INPUT;}}public void validate(){if(this.getUsername()==null||"".equals(this.getUsername().trim())){//如果你没输入东西,或者输入一堆空格的话……就添加一个名叫username的错误信息this.addFieldError("username", "Username is required!");}if(this.getPassword()==null||"".equals(this.getPassword().trim())){this.addFieldError("password", "Password is required!");}}//这个JAVA文件会弹出警告,应为没有private static final long serialVersionUID=...;这一句,指出其修改的次数,不过不影响}
要使用数据验证功能,Action类要继承ActionSupport。Action返回值由于使用了数据验证的功能,不再是返回一个字段,而且返回一个类似与常量的东西。规定在普通的执行方法execute()中必须抛出异常,错误的情况返回INPUT。而在validate()方法中,则不需要这样做。
3.修改struts.xml文件下相应的标签
<action name="login" class="com.ascent.struts2.action.LoginAction"><result name="input">/login.jsp</result><result>/WEB-INF/welcome.jsp</result></action>
意思为:除了INPUT异常,其余都跳转到welcome.jsp。可以看到error.jsp已经完全没用了。
- 【Struts2】使用Struts2的数据验证功能
- Struts2的数据验证
- Struts2 简单的数据验证
- Struts2的表单数据验证
- struts2使用kaptcha实现验证码功能
- 使用struts2的annotation验证
- 使用struts2的annotation验证
- Struts2中数据验证的使用-----validation文件命名
- Struts2使用validate方法验证数据
- Struts2:使用Validation框架验证数据
- Struts2:使用validate方法验证数据
- struts2 使用Validation框架验证数据
- Struts2中使用Validation数据验证
- Struts2 使用Validation框架验证数据
- 使用struts2表单数据校验功能
- 使用struts2表单数据校验功能
- Struts2数据验证与使用Java代码进行数据验证
- struts2简单数据验证
- ServletContextListener使用详解
- 海康威视2015招聘
- Linked List Cycle II
- 微软、谷歌、百度等公司经典面试100题[第101-160题]
- 一个人的孤独
- 【Struts2】使用Struts2的数据验证功能
- 如何在网页中通过js代码将直接关注某个微信账号
- 黑马程序员-----泛型(第四篇)
- 使用VS搭建三层结构
- HTTP协议状态码详解(HTTP Status Code)
- 浅谈paas的关键技术
- Binary Tree Preorder Traversal
- Django模板系统——过滤器
- 《OOD启思录》——60多条面向对象设计(OOD)经验原则