Struts2 校验数据问题
Posted 学无止境
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 校验数据问题相关的知识,希望对你有一定的参考价值。
我们会经常遇到一下问题,例如我在前端输入数据,把数据发送到和后台,我首先要校验这个数据,
比如说:前端必须输入一个日期类型的数据,后端才能正确接收,要是输入一个不是日期型的数据,
那么后端就要把数据打回去,并且提示或者跳转到错误页面。那么怎么去校验呢?
f废话不多说,直接添代码,最直观的方法。
前端代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% 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>首页</title> </head> <body> <form action="actions/user" method="post"> 姓名:<input type="text" name="name"><input type="submit"value="提交"> </form> </body> </html>
我这里要向后台发送的是一个姓名的数据,姓名必须不能是空,必须是admin否则会跳到错误页面。
Java代码:
public class One_action extends ActionSupport { private String name;//姓名 public String getName() { return name; } public void setName(String name) { this.name = name; } public String add() { if(name==null|| !name.equals("admin")){ this.addFieldError("name", "name is Error"); return "error"; } return SUCCESS; } }
add方法就是校验数据的方法。add方法调用的addFiledError方法
struts.xml的配置中文件代码:
<package name="student" extends="struts-default" namespace="/actions"> <action name="user" class="DataValidation.One_action" method="add"> <result name="error"> /user_add_error.jsp </result> </action> </package>
在Java中return “error” 的error一定和struts.xml中的result 中的name属性相对应。
当输出不正确的值是,就可以调到错误页面啦。
错误页面jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s" %><%--自定义标签 --%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>‘user.jsp‘</title> </head> <body> User add error; <s:fielderror fieldName="name" theme="simple"></s:fielderror> <br> <s:property value="errors.name[0]"/> <s:debug></s:debug> </body> </html>
这里用了自定义标签。
错误页面显示:
User add error;
- name is Error
name is Error
以上是关于Struts2 校验数据问题的主要内容,如果未能解决你的问题,请参考以下文章