用于Java的简单表单处理API
我正在寻找一个非常简单的Java表单处理API。假设表单输入字段对应于bean属性,并且所有bean都有javax.Validation注释,理想情况下API会:用于Java的简单表单处理API,java,jquery,ruby-on-rails,forms,bean-validation,Java,Jquery,Ruby On Rails,Forms,Bean Validation,我正在寻找一个非常简单的Java表单处理API。假设表单输入字段对应于bean属性,并且所有bean都有javax.Validation注释,理想情况下API会: 将bean显示为html表单 使用请求参数填充bean,包括嵌套对象(如果适用) 使用验证注释验证输入 如果有错误,请在窗体顶部显示错误,并突出显示错误字段 此外: 如果我不必购买整个应用程序框架,那就太好了,因为我使用的是一个遗留应用程序 允许对更复杂的用例进行配置,但默认情况下只使用约定 奖金: 还生成javascrip
- 将bean显示为html表单
- 使用请求参数填充bean,包括嵌套对象(如果适用)
- 使用验证注释验证输入
- 如果有错误,请在窗体顶部显示错误,并突出显示错误字段
- 如果我不必购买整个应用程序框架,那就太好了,因为我使用的是一个遗留应用程序
- 允许对更复杂的用例进行配置,但默认情况下只使用约定
- 还生成javascript客户端验证
public class AccountForm {
@NotBlank(groups = RequiredChecks.class)
@Size(min = 2, max = 25)
private String name;
//...
}
示例表格:
<%@ taglib uri="http://org.jails.org/form/taglib" prefix="s" %>
<s:form name="accountForm" action="/jails-demo/jails" label="Your Account Details" style="side">
<s:text name="name" label="Name" size="25" />
<s:text name="accountName" label="Account Name" size="15" />
...
</s:form>
...
验证和映射示例:
SimpleValidator validator = new SimpleValidator();
if ("submit".equals(request.getParameter("submit"))) {
Map<String, List<String>> errors = validator.validate(AccountForm.class, request.getParameterMap());
if (errors != null) {
AccountForm account = validator.getMapper().toObject(AccountForm.class, request.getParameterMap());
//do something with valid account
} else {
SimpleForm.validateAs(AccountForm.class).inRequest(request).setErrors(errors);
//handle error
}
} else {
SimpleForm.validateAs(AccountForm.class).inRequest(request);
//forward to formPage
}
SimpleValidator验证器=新的SimpleValidator();
if(“submit”.equals(request.getParameter(“submit”)){
映射错误=validator.validate(AccountForm.class,request.getParameterMap());
如果(错误!=null){
AccountForm account=validator.getMapper().toObject(AccountForm.class,request.getParameterMap());
//用有效帐户做些什么
}否则{
SimpleForm.validateAs(AccountForm.class).inRequest(请求).setErrors(错误);
//处理错误
}
}否则{
SimpleForm.validateAs(AccountForm.class).inRequest(请求);
//转发至formPage
}
这就是表单的外观,使用jQuery进行客户端验证(由提供):
我不认为您会发现一些具有大部分功能且不是框架的东西 我可以推荐SpringMVC——你可以很容易地将它插入到遗留应用程序中。它支持上述所有功能 自己动手也不会那么难:
- 使用
用请求参数填充对象BeanUtils.populate(bean,request.getParameterMap())
- 手动使用
。对于每个错误,添加请求属性,稍后可以将其显示为错误javax.validation.*
请注意,无论采用哪种方式,您都必须手动编写html代码。我们通常不会像您上面要求的那样提供完整的解决方案。你为什么不开始开发你的“表单”,然后当你有更具体的编码问题时,我们可以帮助你更多?谢谢你的提议。。。实际上,我并不是在寻找编码帮助,而是在寻找一个可以直接插入.BeanUtils.populate(bean,request.getParameterMap())的现有解决方案。。。这是成功的一半。它是为String->Primitive->String提供股票转换器,还是您必须自己编写?不幸的是,编写HTML是我最感兴趣的另一件事,我不必自己动手!切记。我看到所有标准用例都有股票转换器,您可以根据需要创建自己的股票转换器。再次感谢!