zoukankan      html  css  js  c++  java
  • struts2官方 中文教程 系列六:表单验证

    先贴个本帖的地址,以免被爬:struts2教程 官方系列六:表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 

    下载本章节代码

    介绍

    在本教程中,我们将探索使用Struts2来验证用户在表单上的输入。有两种方法可以来进行表单验证。本教程将介绍更基本的方法,在Struts2 Action类中包含验证。

    为了使Struts2 Action类Struts2 表单中验证用户的输入,您必须在Action类中定义一个validate方法。假设我们有这些业务规则:

      1.用户必须提供第一个名称用户

      2.必须提供一个电子邮件地址用户

      3.未到18岁不能注册

    添加如下代码到/src/action/RegisterAction.java

    validate method

    public void validate(){
        if (personBean.getFirstName().length() == 0) {
            addFieldError("personBean.firstName", "First name is required.");
        }
    
        if (personBean.getEmail().length() == 0) {
            addFieldError("personBean.email", "Email is required.");
        }
    
        if (personBean.getAge() < 18) {
            addFieldError("personBean.age", "Age is required and must be 18 or older");
        }
    }

    当用户在register表单上按下提交按钮时,Struts2将把用户的输入传递给personBean的实例字段。然后Struts 2将自动执行validate 方法。如果if判断条件为true,那么Struts2将调用它的addFieldError方法(继承自ActionSupport类)。

    如果验证失败,那么Struts2就不会继续调用execute方法了。相反,Struts2 将返回“input”作为该操作的结果。(常用结果的还有success、error)

    处理 "Input" 结果

    那么,如果Struts2返回“input”表示用户的表单输入无效,那么接下来该怎么办呢?在大多数情况下,我们将希望重新显示具有表单的web页面,并将错误消息包含在表单中,以告知用户。

    为了处理"input" 结果,我们需要在struts.xml添加配置:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    
    <struts>
    
        <constant name="struts.devMode" value="true" />
    
        <package name="basicstruts2" extends="struts-default">
            <action name="index">
                <result>/index.jsp</result>
            </action>
            <!--hello->
            <action name="hello" class="action.HelloWorldAction" method="execute">
                <result name="success">/HelloWorld.jsp</result>
            </action>
            
            <!-- register -->
            <action name="register" class="action.RegisterAction" method="execute">
                <result name="success">/thankyou.jsp</result>
                <result name="input">/register.jsp</result>
            </action>
        </package>
    
    </struts>

     因此,当验证失败,Struts2 返回"input"结果时,Struts2 将重新显示register.jsp。由于我们使用了Struts2 的表单标签,因此Struts2将自动的添加错误消息。这些错误消息是我们在addFieldError方法调用中指定的。addFieldError方法有两个参数。第一个是错误字段的表单字段名,第二个是在表单字段上方显示的错误消息  

    addFieldError("personBean.firstName", "First name is required.")

    将会在表单上的firstName字段上面显示"First name is required."

    运行

    添加css

    Struts2 的<s:head/>标签可用于对错误消息添加CSS,这个标签要放在HTML的<head>标签中,重新运行:

    总结

    本教程通过向Action类添加验证方法来验证用户的表单输入。还有一种更复杂的方法可以使用XML验证用户输入。如果您想了解关于在Struts 2中使用XML进行验证的更多信息,请参阅验证Validation

    在我们的下一个教程中,我们将使用消息资源文件将文本从视图页面中分离出来。

  • 相关阅读:
    最小圆覆盖
    BZOJ3572 [Hnoi2014]世界树 【虚树 + 树形dp】
    一些组合数学
    BZOJ3611 [Heoi2014]大工程 【虚树】
    线段树合并
    BZOJ4446 [Scoi2015]小凸玩密室 【树形Dp】
    生成函数小记
    BZOJ2337 [HNOI2011]XOR和路径 【概率dp + 高斯消元】
    连续数字异或和
    POJ2976:Dropping tests——题解
  • 原文地址:https://www.cnblogs.com/linghaoxinpian/p/6906720.html
Copyright © 2011-2022 走看看