`
liyiye
  • 浏览: 424935 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对于struts2的验证机制的(FieldError)一些理解

阅读更多

以前一直是用struts1开发程序,近日看了一下struts2。在这里发表一下自己的一下看法,欢迎大家探讨一下。

 

struts2 采用配置文件的形式进行验证的,action的代码如下:

public class LoginAction extends com.opensymphony.xwork2.ActionSupport{
   
    private String userName;
    private String passwd;
    private String vercode;
 
    public String login()throws Exception
    {
       
       
            return "";
    }
}

 

 

验证文件的名称是:LoginAction-login-validation.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

<validators>
    <field name="userName" >
        <field-validator type="requiredstring" >
            <message>login用户名必填!</message>
        </field-validator>
        <field-validator type="regex" >
            <param name="expression"><![CDATA[(\S{2,10})]]></param>
            <message>您输入的用户名的长度必须在2到10之间</message>
        </field-validator>
    </field>
    <field name="passwd" >
        <field-validator type="requiredstring" >
            <message>login密码必填!</message>
        </field-validator>
    </field>
    <field name="vercode">
        <field-validator type="requiredstring">
            <message>login验证码必填!</message>
        </field-validator>
        <field-validator type="regex">
            <param name="expression"><![CDATA[(\w{6,6})]]></param>
            <message>您输入的验证码只能是字母和数字,且长度必须在6位</message>
        </field-validator>
    </field>
</validators>

 

在页面提交一个form表单:

 <form   action="login.action" method="post" >

<table>
            <tr>
    <td><label>用户名:</label></td>
    <td
><input type="text" name="userName " value=""/>
</td>
<td>
<s:fielderror ><s:param>userName </s:param></s:fielderror>
</td>
</tr>

            <tr>
    <td><label>密码:</label></td>
    <td
><input type="password" name="passwd " />

</td>
<td>
<s:fielderror><s:param>passwd </s:param></s:fielderror>
</td>
</tr>

            <tr>
    <td><label>验证码:</label></td>
    <td
><input type="text" name="vercode " value="" />
</td>
<td>
<img src="authImg" id="authImg" onClick="refresh()" title="看不清?单击此处刷新" alt="验证码"/>
<s:fielderror><s:param>vercode </s:param></s:fielderror>
</td>
</tr>

            <tr>
    <td colspan="2"><div align="right"><input type="submit" value="登陆"/>

</div></td>
</tr>
   
        </table></form>

 

当你输入的字段不符合配置文件的规则,就会跳到配置的input页面里面。例如输入的用户名不符合规则,则会显示提示的信息在:<s:fielderror ><s:param>userName </s:param></s:fielderror>里面。

有一个问题是:当你再次根据提示的信息,修改你的输入信息。还是不能提交,这是为什么呢?

原因是因为里面的fielderror的字段的信息没有清空。

有时但你需要从action里面读取一下数据,在页面显示的时候,如果你的输入信息错误,那你将读取不到action里面的信息,这是因为当验证没有通过的时候是读取不到action的东西,那当跳转到input的时候,就会有些数据读取不到了。

解决的办法是重写validate()方法。

 

你可以在该方法里面的开头加一句:clearErrorsAndMessages(); 这样每次从新验证的时候就会把上次的错误信息清除掉。

而且重写该方法可以把你需要的数据在这里写好。

 

上面是我的一下看法,如果有更好的解决办法,请告诉我,谢谢

分享到:
评论
1 楼 lph128998 2008-12-11  
struts2在页面使用s标签,如果验证出现错误会自己显示出来的啊

相关推荐

    struts2 fielderror去掉样式

    虽然具体内容未提供,但可以推测博主可能分享了如何在不改变Struts2核心功能的情况下,自定义`FieldError`的显示方式,以达到去除或替换默认样式的目的是常见的需求,特别是对于那些希望个性化界面或者遵循特定设计...

    struts2官方例子7-表单验证 xml形式的验证

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。在Struts2中,表单验证是非常重要的一个环节,它确保了...通过熟悉并掌握这种验证机制,开发者可以更有效地保证应用的质量和用户体验。

    struts2 表单验证验证信息显示位置及效果

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在Struts2中,表单验证是确保...对于理解和掌握Struts2的表单验证,阅读和分析提供的`client`文件将是非常有益的。

    Struts动态表单验证

    3. **Struts的验证机制** Struts提供了两种验证方式:ActionForm验证和Validator框架验证。ActionForm验证是早期版本中的方法,通过在ActionForm类中定义验证逻辑。Validator框架则是Struts 1.x中的增强功能,允许...

    Struts2 校验器

    Struts2是一个非常流行的Java Web框架,用于构建和维护可...理解并熟练使用Struts2的验证机制对于开发高质量的Web应用至关重要。通过阅读给出的博客文章,你将能够深入了解Struts2的校验框架及其在实际项目中的应用。

    Struts2异常处理机制

    Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误...理解并熟练运用这些机制,对于构建健壮的Struts2应用至关重要。

    struts2框架验证.rar

    在导入"struts2learn"这个项目后,你可以通过查看Action类、struts.xml配置文件以及JSP页面来学习如何实现Struts2的验证机制。此外,理解并实践这些知识点有助于提升Web应用的安全性和用户体验。记得在MyEclipse中...

    Struts2_Validation

    Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的企业级应用。Validation在Struts2中...如果你正在学习或使用Struts2开发项目,理解和掌握这些知识点对于提升应用的质量和安全性至关重要。

    struts2 validate 验证

    Struts2是一个强大的MVC...通过深入理解和熟练运用Struts2的验证机制,你可以构建出更健壮、更安全的Web应用,防止因无效或恶意数据导致的问题。在实际开发中,应结合实际需求灵活选择验证方式,以达到最佳效果。

    struts2表单验证

    总结,Struts2的表单验证机制是其强大功能的一部分,通过合理的配置和编程,能够有效地确保用户输入的数据质量和应用的安全性。结合Ant工具,可以提高开发效率并简化部署过程。对于大型项目,理解并熟练掌握这些知识...

    struts2用户登录实例的validator后台校验

    Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于...通过学习和理解"struts2_1.7_validator"中的示例,你可以更好地掌握Struts2的验证机制,并将其应用到自己的项目中,提高用户输入的处理效率和安全性。

    Struts2数据输入验证教程详解

    Struts2是一个流行的Java web开发框架,它提供了一种强大的数据输入验证机制,确保用户提交的数据符合预期格式和约束。本教程将深入讲解Struts2中的数据输入验证,包括两种主要验证方式:客户端验证和服务端验证。...

    struts2验证

    Struts2的验证机制主要分为两种:客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户浏览器上进行,它可以实时检查用户输入并提供即时反馈,提高用户体验。而服务器端验证则在服务器接收到请求后执行,...

    Struts2的输入校验

    Struts2提供了强大的验证框架,支持多种验证方式,包括基于注解的验证、XML配置的验证以及编程式验证。这些验证规则可以定义在Action类中,或者单独的验证配置文件里。 1. **基于注解的验证** 使用注解是Struts2中...

    李顺利Struts2表单验证后回显错误信息 标签使用

    李顺利老师通过他的讲解,让我们深入理解了如何在Struts2中使用特定的标签来实现这一目标。 首先,Struts2提供了`&lt;s:fielderror&gt;`和`s:actionerror`这两个标签用于显示验证错误。`&lt;s:fielderror&gt;`主要用于显示单个...

    如何自定义Struts2表单验证后的错误信息显示格式/样式

    总结来说,自定义Struts2表单验证后的错误信息显示格式和样式,需要理解Struts2的验证机制,创建并配置自定义主题,修改模板文件,以及可能的情况下编写自定义拦截器。这个过程涉及到对Struts2框架的深入理解和实践...

    struts2 简单数据校验

    Struts2是一个非常流行的Java Web框架,用于构建企业级应用。在Struts2中,数据校验是一个重要的功能,...这个压缩包对于学习和掌握Struts2数据校验机制非常有帮助,特别是对于那些希望提升Java Web开发技能的人来说。

    更加复杂的Struts validate验证

    理解并熟练掌握Struts的validate验证机制,对于开发健壮的Web应用至关重要。它不仅能够确保数据的正确性,还能防止恶意输入,提升用户体验,同时也有利于代码的维护和扩展。在实际开发中,根据项目需求灵活运用不同...

    struts2类型转换和验证流程图

    在Struts2中,类型转换和验证机制是确保数据正确性和完整性的重要组成部分。 #### 类型转换流程 1. **请求处理**: - 当用户提交表单或发起HTTP请求时,Struts2拦截器捕获请求并开始处理。 - 拦截器会检查请求中...

Global site tag (gtag.js) - Google Analytics