Spring MVC前端验证

时间:2011-09-14 15:48:40

标签: spring model-view-controller validation frameworks frontend

我希望验证jsp中的用户输入,这些输入使用<spring:bind>绑定到Springformdata对象,而不会触及控制器。

有没有其他方法可以在不使用javascrpit的情况下在Spring MVC中实现这一点。

见下面的代码

<tr><td>
                        <spring:bind path="applyDmlFormData.file">
                            Select DML File : <input type="file" name="file"/> 
                        </spring:bind>
                    </td></tr>

这里我要求用户浏览/选择输入文件,然后将其附加到applyDmlFormData对象的文件属性。

如果用户没有选择任何文件并提交表单,我想在forntend中验证它,而不是命中控制器并显示错误消息,说我必须选择文件。基本上我想实现struts验证框架中提供的相同功能。

要添加的另一件事是我不想使用将由控制器调用的验证器

@RequestMapping(value="/applyDml.htm", method = RequestMethod.POST)
    public String process(@ModelAttribute("applyDmlFormData") ApplyDmlFormData applyDmlFormData, BindingResult result, SessionStatus status, HttpServletRequest request)
    {
        String mav = applyDmls;
        validator.validate(applyDmlFormData, result);

        if(!result.hasErrors())
        { //Business logic goes here
        }
    }

在上面的代码中,我使用validator.validate验证用户输入。我不想这样做。

2 个答案:

答案 0 :(得分:1)

Struts Validator框架生成客户端JavaScript; AFAIK,Spring MVC不提供类似的功能。您需要滚动自己的客户端验证代码。即使你在应用程序中包含Spring JS,你仍然需要编写自己的验证代码; here's an example

请注意,您不需要在处理程序方法中使用Validator对象。您还可以使用@ModelAttribute注释@Valid并使用JSR-303注释。有关详细信息,请参阅http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html#validation-beanvalidation-overview

答案 1 :(得分:1)

您可以浏览Rhino library ..找到spring integration api here