以前一直是用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();
这样每次从新验证的时候就会把上次的错误信息清除掉。
而且重写该方法可以把你需要的数据在这里写好。
上面是我的一下看法,如果有更好的解决办法,请告诉我,谢谢
分享到:
- 2008-12-09 15:32
- 浏览 2307
- 评论(1)
- 论坛回复 / 浏览 (1 / 6653)
- 查看更多
相关推荐
虽然具体内容未提供,但可以推测博主可能分享了如何在不改变Struts2核心功能的情况下,自定义`FieldError`的显示方式,以达到去除或替换默认样式的目的是常见的需求,特别是对于那些希望个性化界面或者遵循特定设计...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java Web开发中。在Struts2中,表单验证是非常重要的一个环节,它确保了...通过熟悉并掌握这种验证机制,开发者可以更有效地保证应用的质量和用户体验。
Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展、模块化且易于管理的企业级应用程序。在Struts2中,表单验证是确保...对于理解和掌握Struts2的表单验证,阅读和分析提供的`client`文件将是非常有益的。
3. **Struts的验证机制** Struts提供了两种验证方式:ActionForm验证和Validator框架验证。ActionForm验证是早期版本中的方法,通过在ActionForm类中定义验证逻辑。Validator框架则是Struts 1.x中的增强功能,允许...
Struts2是一个非常流行的Java Web框架,用于构建和维护可...理解并熟练使用Struts2的验证机制对于开发高质量的Web应用至关重要。通过阅读给出的博客文章,你将能够深入了解Struts2的校验框架及其在实际项目中的应用。
Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误...理解并熟练运用这些机制,对于构建健壮的Struts2应用至关重要。
在导入"struts2learn"这个项目后,你可以通过查看Action类、struts.xml配置文件以及JSP页面来学习如何实现Struts2的验证机制。此外,理解并实践这些知识点有助于提升Web应用的安全性和用户体验。记得在MyEclipse中...
Struts2是一个强大的Java web应用程序框架,用于构建和部署可维护、高性能的企业级应用。Validation在Struts2中...如果你正在学习或使用Struts2开发项目,理解和掌握这些知识点对于提升应用的质量和安全性至关重要。
Struts2是一个强大的MVC...通过深入理解和熟练运用Struts2的验证机制,你可以构建出更健壮、更安全的Web应用,防止因无效或恶意数据导致的问题。在实际开发中,应结合实际需求灵活选择验证方式,以达到最佳效果。
总结,Struts2的表单验证机制是其强大功能的一部分,通过合理的配置和编程,能够有效地确保用户输入的数据质量和应用的安全性。结合Ant工具,可以提高开发效率并简化部署过程。对于大型项目,理解并熟练掌握这些知识...
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于...通过学习和理解"struts2_1.7_validator"中的示例,你可以更好地掌握Struts2的验证机制,并将其应用到自己的项目中,提高用户输入的处理效率和安全性。
Struts2是一个流行的Java web开发框架,它提供了一种强大的数据输入验证机制,确保用户提交的数据符合预期格式和约束。本教程将深入讲解Struts2中的数据输入验证,包括两种主要验证方式:客户端验证和服务端验证。...
Struts2的验证机制主要分为两种:客户端验证和服务器端验证。客户端验证通常通过JavaScript在用户浏览器上进行,它可以实时检查用户输入并提供即时反馈,提高用户体验。而服务器端验证则在服务器接收到请求后执行,...
Struts2提供了强大的验证框架,支持多种验证方式,包括基于注解的验证、XML配置的验证以及编程式验证。这些验证规则可以定义在Action类中,或者单独的验证配置文件里。 1. **基于注解的验证** 使用注解是Struts2中...
李顺利老师通过他的讲解,让我们深入理解了如何在Struts2中使用特定的标签来实现这一目标。 首先,Struts2提供了`<s:fielderror>`和`s:actionerror`这两个标签用于显示验证错误。`<s:fielderror>`主要用于显示单个...
总结来说,自定义Struts2表单验证后的错误信息显示格式和样式,需要理解Struts2的验证机制,创建并配置自定义主题,修改模板文件,以及可能的情况下编写自定义拦截器。这个过程涉及到对Struts2框架的深入理解和实践...
Struts2是一个非常流行的Java Web框架,用于构建企业级应用。在Struts2中,数据校验是一个重要的功能,...这个压缩包对于学习和掌握Struts2数据校验机制非常有帮助,特别是对于那些希望提升Java Web开发技能的人来说。
理解并熟练掌握Struts的validate验证机制,对于开发健壮的Web应用至关重要。它不仅能够确保数据的正确性,还能防止恶意输入,提升用户体验,同时也有利于代码的维护和扩展。在实际开发中,根据项目需求灵活运用不同...
在Struts2中,类型转换和验证机制是确保数据正确性和完整性的重要组成部分。 #### 类型转换流程 1. **请求处理**: - 当用户提交表单或发起HTTP请求时,Struts2拦截器捕获请求并开始处理。 - 拦截器会检查请求中...