Spring JSF和这些错误填充的表单

时间:2011-09-03 22:09:39

标签: java forms spring model-view-controller jsf

我正在考虑开发网络软件的好方法。 Spring非常适合JDBC的东西,但它也有一个很好的功能,可用于自动填充错误的表单,用于预填充表单的好的支持bean等等。

现在我开始使用JSF,它似乎比Spring更适合做MVC。我喜欢xhtml方法,包括模板,在faces-config.xml中定义这些webflow等等。

但是没有明确的关注点分离,因为这两个框架都可以与表单一起使用,而且我很确定如果Faces或Spring应该制作表单,你将不得不放心。我正在倾向于JSF,但我错过了这些漂亮的错误处理和预填充功能。

JSF可以做这些事吗?我是JSF的新手,所以我不确定它有多强大。

1 个答案:

答案 0 :(得分:2)

  

但我错过了这些漂亮的错误处理和预填充功能。 JSF可以做这些事吗?我是JSF的新手,所以我不确定它是多么强大。

JSF内置验证,例如<h:inputText required="true"><f:validateLongRange><f:validateRegex>以及转换,例如<f:convertDateTime><f:convertNumber>等(see them all here)。 JSF还支持JSR 303 Bean Validation,它由模型对象上的@NotNull@Min@Max@Pattern等注释控制。所有验证/转换错误都以绑定到输入元素的<h:message>或全局<h:messages>结束。 This JSF 2.0 tutorial深入处理验证。

关于预填充,只需在bean的(post)构造函数中设置所需的模型,或者如果要获取某个ID作为请求参数,则由<f:viewParam>设置。基本上是:

public class Bean {

    private Entity entity;

    @EJB
    private EntityService entityService;

    @PostConstruct
    public void init() {
        entity = entityService.find(someId);
    }

    // ...
}