一、register.jsp注册页面
//以下第一两句 的作用是输出struts中的filderror中的错误信息!
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:fielderror></s:fielderror>
<body>
<s:fielderror></s:fielderror>
<form action="register.action" method="post">
<table align="center" width="40%" border="1">
<tr>
<td>
username
</td>
<td>
<input type="text" name="username" value=${username}>
</td>
</tr>
<tr>
<td>
password
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
re-password
</td>
<td>
<input type="password" name="repassword">
</td>
</tr>
<tr>
<td>
age
</td>
<td>
<input type="text" name="age" value=${age}>
</td>
</tr>
<tr>
<td>
birthday
</td>
<td>
<input type="text" name="birthday" value=${birthday}>
</td>
</tr>
<tr>
<td>
graduation
</td>
<td>
<input type="text" name="graduation"value=${graduation}> </td>
</tr>
<tr>
<td>
<input type="submit" value=" submit ">
</td>
<td>
<input type="reset" value=" reset ">
</td>
</tr>
</table>
</form>
</body>
</html>
二、success.jsp成功返回页面
<body>
<table align="center" width="40%" border="1">
<tr>
<td>
username
</td>
<td>
${requestScope.username}
</td>
</tr>
<tr>
<td>
password
</td>
<td>
${requestScope.password}
</td>
</tr>
<tr>
<td>
age
</td>
<td>
${requestScope.age}
</td>
</tr>
<tr>
<td>
birthday
</td>
<td>
${requestScope.birthday}
</td>
</tr>
<tr>
<td>
graduation
</td>
<td>
${requestScope.graduation}
</td>
</tr>
</table>
</body>
三、struts.xml
<action name="register" class="com.test.action.RegisterAction">
<result name="success">/success.jsp</result>
<!--一旦校验错误的话,struts会转到input指向的页面-->
<result name="input">/register.jsp</result>
</action>
四、输入校验RegisterAction.java (extends ActionSupport)
public class RegisterAction extends ActionSupport
{
private String username;
private String password;
private String repassword;
private int age;
private Date birthday;
private Date graduation;
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getRepassword()
{
return repassword;
}
public void setRepassword(String repassword)
{
this.repassword = repassword;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public Date getBirthday()
{
return birthday;
}
public void setBirthday(Date birthday)
{
this.birthday = birthday;
}
public Date getGraduation()
{
return graduation;
}
public void setGraduation(Date graduation)
{
this.graduation = graduation;
}
@Override
public String execute() throws Exception
{
return SUCCESS;
}
@Override
public void validate()
{
System.out.println("validate~~~~~~~~~~~~~~~~~~~");
if(null == username || username.length() < 6 || username.length() > 10)
{
this.addFieldError("username","username invalid");
}
if(null == password || password.length() < 6 || password.length() > 10)
{
this.addFieldError("password","password invalid");
}
else if(null == repassword || repassword.length() < 6 || repassword.length() > 10)
{
this.addFieldError("repassword","re-password invalid");
}
else if(!password.equals(repassword))
{
this.addFieldError("password","two passwords not the same");
}
if(age < 1 || age > 150)
{
this.addFieldError("age","age invalid");
}
if(null == birthday)
{
this.addFieldError("birthday","birthday invalid");
}
if(null == graduation)
{
this.addFieldError("graduation","graduation invalid");
}
if(null != birthday && null != graduation)
{
Calendar c1 = Calendar.getInstance();
c1.setTime(birthday);
Calendar c2 = Calendar.getInstance();
c2.setTime(graduation);
if(!c1.before(c2))
{
this.addFieldError("birthday","birthday should be before graduation");
}
}
}
}
分享到:
相关推荐
综上所述,Struts2的输入校验机制不仅支持基本的手动校验,还提供了高度可配置和扩展的验证框架,使得开发者能够根据应用的具体需求,灵活地实现各种校验逻辑,从而提升应用程序的质量和用户体验。
这个"struts2登录,以及输入校验的demo"是一个基础的实例,它展示了如何在Struts2中实现用户登录功能,并进行输入验证,确保数据的正确性和安全性。 首先,我们来看Struts2的核心组成部分: 1. **Action类**:这是...
在基础的Struts2应用中,我们常常会继承`ActionSupport`类来实现输入校验,从而提高代码的复用性和可维护性。 `ActionSupport`是Struts2提供的一种基础Action实现,它包含了默认的行为,如错误处理、国际化支持和...
"04校验框架.doc"可能涵盖了Struts2校验框架的基本用法,包括XML配置、自定义校验规则、错误处理等方面的内容。而"03输入校验.doc"则可能侧重于实际的用户输入验证,探讨如何通过校验器确保用户提交的数据符合预期。...
- **框架原理**:Struts2提供了强大的输入校验功能,可以自动检查用户提交的数据是否符合预期。 - **配置方式**: - 使用注解方式(适用于Struts2较新版本)。 - 在`struts.xml`或Action类中通过配置文件的方式...
5. **类型转换与输入校验**:Struts2在类型转换过程中也会进行基本的校验,如检查非空、数值范围等。 **四.Struts2的核心:拦截器** 拦截器是Struts2的核心组件,它们在Action执行前后介入处理流程。拦截器可以...
在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...
Struts 是一个经典的Java Web...通过这个例子,开发者可以学习到如何在实际项目中运用Struts进行用户输入的验证,以及如何结合数据库实现用户管理功能。这不仅有助于提升程序的健壮性,还能提高用户对系统的信任度。
### Struts2学习心得:数据类型转换与校验方式 #### 一、Struts2框架简介 Struts2是基于MVC(Model-View-Controller)设计模式的Java Web开发框架,它为开发者提供了一种简洁高效的方式来构建复杂的Web应用程序。...
总之,Struts2的数据校验机制是其强大功能之一,它帮助开发者有效地管理用户输入,保证数据的准确性和完整性。通过深入研究“Struts2_1100_SimpleDataValiation”源码,你可以掌握Struts2数据校验的基本原理和实践...
Struts2 数据校验是Java Web...学习并熟练掌握Struts2的数据校验,不仅可以提升开发效率,还能帮助开发者编写出更加健壮、可靠的Web应用。因此,无论你是初学者还是经验丰富的开发者,都应该深入理解和实践这一功能。
这个项目可能包含了Action编写、视图渲染、用户交互、数据验证等基本功能,是学习和理解Struts2框架的一个很好的实践案例。通过分析和运行这个项目,可以深入理解Struts2的工作原理及其在实际应用中的运用。
**6.2 基本输入校验** - **6.2.1 编写校验规则文件** - **实现方式**:如何编写校验规则文件,以定义各种校验规则。 - **6.2.2 服务器校验,编写校验规则文件,并国际化提示信息** - **实现方式**:如何在服务器...
通过学习和实践这个“struts2简单例子”,开发者可以逐步掌握Struts2的基本用法,为更复杂的Web应用开发打下坚实基础。记得不断探索Struts2的高级特性,如OGNL表达式、插件扩展等,以提升应用的灵活性和可维护性。
学习Struts2不仅需要理解这些基本概念,还要掌握Action的生命周期、拦截器链的工作原理、国际化处理、文件上传下载等功能。此外,整合Spring框架以实现依赖注入,以及与Hibernate等ORM框架集成进行数据库操作,也是...
这些知识点构成了Struts2的基本框架,通过学习和实践,开发者能够有效地构建功能丰富的Web应用。在实际开发中,还需要理解拦截器、结果类型、插件机制、异常处理等更多高级特性和最佳实践,以提升开发效率和代码质量...
3. **Struts2输入校验**: Struts2提供了一种灵活的输入验证机制,可以在Action级别或者全局级别进行数据校验,避免无效数据进入系统。 4. **文件上传与下载**: Struts2支持文件上传和下载功能,利用`commons-...
通过学习这些笔记和代码示例,你不仅可以了解Struts2的基本工作原理,还能掌握实际开发中的常见应用场景,为你的Java Web开发之路打下坚实的基础。在实际学习过程中,建议结合视频教程,动手实践,遇到问题时查阅...