Struts中重写ActionForm中validate方法验证表单
要想验证就要先重写验证函数,在org.apache.struts.action.ActionForm
中有两个验证表单函数,分别为
javax.servlet.ServletRequestrequest)和
我们重写的需是后者:如下
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
{
ActionErrors error = new ActionErrors();
if(username==null || "".equals(username))
{
error.add("nameError",new ActionMessage("jsp.login.name.error"));
}
if(password==null || "".equals(password))
{
error.add("passwordError", new ActionMessage("jsp.login.password.error"));
}
return error;
}
在此方法中error.add中的第一个参数为你所要在某一个JSP页面内所需要使用到的错误名称。一个表单会有多个错误,当然就需要有多个不同的名称将它们记住。ActionMessage中参数所用字符串需是在ApplicationResources.properties中记定义到Key-Value中的Key.而其中的Value才在以后在你页面当中显示的错误提示。
除此这外,我们还需要修改一个Struts的配置文件。
在<action-mappings >中的action中需要将validate属性设置为true,在input中添写将要显示错误的页面,当然用到了表单验证,我们就当然需要再配置一下<form-beans >,全部如下
<form-beans >
<form-bean name="loginForm" type="form.LoginForm"/>
</form-beans>
<action-mappings >
<actionpath="/login" name="loginForm"
type="LoginAction"validate="true" input="/Login.jsp"/> </action-mappings>
PS:<action-mapping>中的path为从页面接收.do操作的名称,name为用到的表单名称,type为处理此事务所用到的某一个action方法。
分享到:
相关推荐
在ActionForm中,我们可以通过重写`validate()`方法来实现表单验证。这个方法会在Action执行之前调用,如果验证失败,会将错误信息添加到ActionContext的ActionErrors容器中。 4. **错误信息追加** 当验证失败时...
reset()方法用于恢复ActionForm的默认值,而validate()方法用于验证用户的表单数据。这些方法的默认实现是不执行任何操作,我们可以重写这些方法来实现相关逻辑。 3. ActionForm的使用 在Struts中,ActionForm需要...
2. **validate()方法**:这是自定义验证的核心,通常在ActionForm中重写此方法。validate()方法的任务是检查表单字段的值是否符合预期,如非空检查、格式验证等。如果发现错误,它会通过添加FieldErrors到...
3. 验证:开发者可以重写ActionForm的`validate()`方法来进行数据校验,确保用户输入符合业务规则。 4. 处理:Action类通过调用ActionForm的方法获取数据,然后执行业务逻辑。 5. 清理:请求处理完成后,ActionForm...
当用户在表单中填写数据并提交时,Struts框架会创建一个ActionForm实例,并自动调用对应字段的set方法,将请求参数填充到ActionForm中。 2. **get和set方法的作用** - **set方法**:在用户提交表单后,Struts框架...
为了实现表单验证,我们需要重写`ActionForm`中的`validate()`方法。该方法返回一个`ActionErrors`对象,表示验证过程中发现的错误。如果没有错误,则返回一个空的`ActionErrors`对象。 ```java @Override public ...
开发者可以在ActionForm类中重写validate()方法,对用户输入进行验证,如果验证失败,ActionForm会设置错误信息,Action可以根据这些错误信息决定是否需要重新显示表单并提示用户。 在实际开发中,Struts 2替代了...
- **编写ActionForm**:继承自Struts的ActionForm,添加对应的字段,并重写validate()方法。 - **在JSP中处理错误**:在JSP页面中使用Struts标签库显示错误信息。 4. **优点与最佳实践** - 提高代码复用性:通过...
这可以通过重写validate()方法实现,或者使用Struts的Validator插件,它可以处理XML配置文件中的动态验证规则。 4. **业务逻辑处理**:在控制器层,Action类接收到ActionForm对象后,可以调用相应的业务服务来处理...
3. **配置 Struts 配置文件**:在 `struts-config.xml` 文件中配置 Action 映射关系以及表单验证规则等。 #### 三、具体实现 ##### 1. 表单类 `LoginForm` 表单类是继承自 `ActionForm` 的子类,用于封装用户输入...
2. 不需要在ActionForm类中重写`validate()`方法,因为验证框架会自动处理验证逻辑。 3. 在`validation.xml`文件中配置验证规则。`validator-rules.xml`文件包含了预定义的验证规则,而`validation.xml`文件则针对...
- 创建ActionForm类:继承自Struts的`ActionForm`类,根据JSP中的表单字段创建相应的属性并提供getter和setter方法。 3. **JSP编码**: - 使用Struts标签库:避免使用JSP标准标签,而应使用Struts提供的标签库,...
- 表单验证主要检查用户输入的数据是否符合格式要求,通常在ActionForm的validate()方法中进行。 - 业务逻辑验证则涉及更复杂的业务规则,如在Action的execute()方法中进行。 - Struts1.2以后的版本,ActionError...
2. `LoginForm`类通常包含字段(如`username`和`password`)来存储用户输入,并在`validate`方法中实现数据验证。 3. `LoginAction`类的`execute`方法接收`LoginForm`实例,执行登录验证,然后根据验证结果决定返回...
在Struts中,ActionForm对象用于封装用户表单数据,并且可以实现表单数据的验证功能。当表单数据不符合预期时,可以通过ActionForm对象来捕获这些错误,并将其返回给用户。下面将详细介绍如何在ActionForm中实现错误...
10. **Validation Framework**:Struts提供了验证框架,通过在ActionForm上添加validate方法和相应的属性约束,可以对用户输入进行验证。 11. **Struts标签库**:Struts提供了丰富的JSP标签库,如logic、bean、html...
在`LoginAction.java`中,我们重写`execute()`方法来处理登录逻辑。通常,这里会检查用户名和密码的有效性,如果验证通过,则返回`login_success.jsp`,否则返回`login_failure.jsp`。 最后,我们更新`struts-...
- **Struts1**使用ActionForm中的方法来转换表单提交的数据到对应的Java类型,通常通过`String`类型的属性进行转换。 - **Struts2**使用OGNL表达式来进行类型转换,提供了一套更为统一且强大的转换机制,大大简化了...
接下来,RequestProcessor会检查ActionForm是否需要验证,如果需要,它会调用ActionForm的`validate`方法,如果有验证错误,请求将转向input属性指定的页面。 如果ActionForm验证成功,RequestProcessor会创建...