我正在考虑开发web软件的好方法。Spring非常适合JDBC,但它也有一个很好的特性,可以自动完成错误的表单,很好的备份bean可以预填充表单等等。
现在我从JSF开始,它似乎比Spring更适合做MVC。我喜欢xhtml方法,包括模板,在faces-config.xml中定义这些webflow等等。
但是没有明确的关注点分离,因为两个框架都可以使用表单,我很确定您将不得不决定是Faces还是Spring来制作表单。我倾向于JSF,但我错过了这些漂亮的错误处理和预填充功能。
JSF也可以做这些事情吗?我是JSF的新手,所以我不确定它有多强大。
但是我错过了这些漂亮的错误处理和预填充功能。JSF也可以做这些事情吗?我是JSF的新手,所以我不确定它有多强大。
JSF有内置的验证,例如<h:inputText required="true">
, <f:validateLongRange>
, <f:validateRegex>
和转换,例如<f:convertDateTime>
, <f:convertNumber>
等(在这里看到它们)。JSF还支持JSR 303 Bean验证,该验证由模型对象上的@NotNull
、@Min
、@Max
、@Pattern
等注释控制。所有验证/转换错误都以绑定到输入元素的<h:message>
或全局<h:messages>
结束。本JSF 2.0教程将深入处理验证。
对于预填充,只需在bean的(post)构造函数中设置所需的模型,如果需要获取某个ID作为请求参数,则通过<f:viewParam>
设置。基本上:
public class Bean {
private Entity entity;
@EJB
private EntityService entityService;
@PostConstruct
public void init() {
entity = entityService.find(someId);
}
// ...
}