简单的数据验证:使用addFieldError方法和s:fieldError标签简单处理数据校验(一般不使用)
1.编写index.jsp
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <base href="<%=basePath %>"/> <title>Insert title here</title> </head> <body> 使用addFieldError方法和s:fieldError标签简单处理数据校验 <a href="user/user!add?name=a" >添加用户</a> </body> </html>
2.编写action
package com.bjsxt.struts2.user.action; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { private String name; public String add() { //对name属性进行校验 if(name == null || !name.equals("admin")) { this.addFieldError("name", "name is error");//调用addFieldError方法,将提示信息存放到value stack contents中 this.addFieldError("name", "name is too long");//查看值栈中的内容,可以同一个name可以对应多个值 return ERROR; } return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3.struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="user" extends="struts-default" namespace="/user"> <action name="user" class="com.bjsxt.struts2.user.action.UserAction"> <result name="error">/error.jsp</result> </action> </package> </struts>
4.编写error.jsp,使用struts的标签获取错误信息
<?xml version="1.0" encoding="GB18030" ?> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@taglib uri="/struts-tags" prefix="s" %><!--使用struts2的标签--> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> User Add Error! <!--提示信息会有默认的样式,不实用。可以从浏览器中查看源码--> <s:fielderror fieldName="name" theme="simple"/><!--获取value stack contents的数据--> <br /> <s:property value="errors.name[0]"/><!--使用OGNL表达式获取value stack contents中的内容--> <s:debug></s:debug><!--使用这个标签可以查看value stack contents中的数据--> </body> </html>
相关推荐
Struts2是一个非常流行的Java ...你可以通过解压文件,学习和理解Struts2数据校验的详细步骤和实践方法。这个压缩包对于学习和掌握Struts2数据校验机制非常有帮助,特别是对于那些希望提升Java Web开发技能的人来说。
在JSP中,可以使用内置的EL(Expression Language)表达式或自定义标签库(如Struts2的validate标签)来实现字段校验。例如,验证邮箱的代码可能如下: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> <s:...
如果校验失败,Struts2会自动重定向到`input`视图(即`register.jsp`),并在页面上显示错误信息(通过`s:fielderror`标签)。 6. **struts.xml配置**: 配置文件中,`<action>`元素定义了`login`动作,指定`...
在进行任何校验之前,通常需要先将用户的输入数据转换为应用程序可以理解和使用的格式。例如,将文本字符串转换为日期或数字等类型。 #### 四、示例详解 为了更好地理解如何在Struts 2.0中实现表单数据校验,下面...
1. 使用`<s:fielderror/>`标签展示错误信息。Struts2提供了一个内置标签`s:fielderror/>`,它可以自动找到ActionContext中保存的错误信息并显示在页面上。 2. 搭配使用`<s:reset/>`标签。此标签用于清空表单的字段...
5. **内置校验器**:Struts2提供了丰富的内置校验器,覆盖了从简单的类型检查到复杂的数据验证。例如`required`用于检查字段是否为空,`int`和`double`用于数值类型检查,`email`用于电子邮件地址验证等。 综上所述...
5. **错误处理** 当验证失败时,Struts2会自动将错误信息添加到ActionContext中,可以在JSP页面中使用OGNL表达式显示这些错误。 ```jsp <s:if test="hasFieldErrors('exampleField')"> <s:fielderror field=...
在视图层,如form.jsp,可以使用`s:fielderror`标签显示错误信息: ```html <s:fielderror key="msg.name"/> <s:form action="test!save" name="test"> <s:textfield name="name"></s:textfield> <s:submit></...
错误信息可以通过`<s:actionerror>`和`<s:fielderror>`标签在JSP页面上显示。 4. **成功信息**:在验证成功后,如果需要向用户展示一些提示信息,可以使用`addActionMessage`方法添加。这些信息将在表单提交成功后...
1. **JSP页面**:在注册页面`register.jsp`中,使用`<s:fielderror/>`标签显示错误信息,并通过表单提交数据。 2. **Action类**:在`RegisterAction`中,重写`validate()`方法,检查用户名和密码的长度,若不符合...
为了确保系统的稳定性和安全性,必须在校验通过后才将数据传递给业务逻辑层处理。 ##### 1.2 客户端校验与服务器端校验的区别 - **客户端校验**:通常利用JavaScript等技术在用户提交表单前进行快速校验,可以提供...
本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:使用Action中的`validate()`方法和使用XML文件。 1. 使用Action中的`validate()`方法: 在Struts2中,每个Action类都可以包含一个名为`...
这些错误信息可以在视图层使用Struts标签如<s:fielderror>或<s:textfield>展示。当遇到类型转换错误时,Struts2框架会自动处理并添加错误信息。输入校验的顺序是:首先进行类型转换,接着执行校验,如果两者都未发现...
- `<s:fielderror>` 标签:用于显示字段级别的错误信息,这允许开发者更精细地控制错误信息的呈现,例如将不同类型的错误信息设置为不同的颜色。 3. **日期比较** 示例代码展示了如何比较两个日期(`birthday` 和...
在Struts2的2.3.15.3版本中,集成的验证框架是其核心功能之一,帮助开发者确保用户输入的数据质量和安全性。本篇将详细讲解如何在Struts2中实现一个简单的验证框架模式。 首先,我们需要了解Struts2验证框架的基本...
- **传递方式**:在`validate()`方法中使用`addFieldError()`方法添加错误信息,然后在JSP页面中使用`<s:fielderror/>`标签来展示这些错误信息。 #### 10. 文件上传的要求 - **页面配置**:为了支持文件上传,表单...