在多层企业级应用中,Web框架和ORM持久层框架通常会有不同的数据验证机制。Web框架在Web表单被提交时验证用户输入,而持久层框架在保存数据进数据库之前验证数据。在大多数情况下,它们显得多余。
Seam允许你在实体Beans中直接注解数据验证约束,这样使用与实体Beans相联系的JSF输入框时,同样的验证约束将应用于输入数据。
下面的例子中,Person对象的名字必须由两个单词组成,并且年龄必须在3到100岁之间。
@Entity
@Name(”person”)
@Table(name=”extperson”)
public class Person implements Serializable {
private long id;
private String name;
private int age;
@Id @GeneratedValue
public long getId() { return id;}
public void setId(long id) { this.id = id; }
@NotNull
@Pattern(regex=”^[a-zA-Z.-]+ [a-zA-Z.-]+”,
message=”Need a firstname and a lastname”)
public String getName() { return name; }
public void setName(String name) {this.name = name;}
@NotNull
@Range(min=3, max=100,
message=”Age must be between 3 and 100″)
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
下面的JSF页面将自动”包装”一些验证逻辑。如果用户提交无效值,将重新显示页面,同时高亮显示无效的字段。
<s:validateAll>
Your name:<br/>
<s:decorate>
<h:inputText value=”#{person.name}”/>
</s:decorate>
Your age:<br/>
<s:decorate>
<h:inputText value=”#{person.age}”/>
</s:decorate>
</s:validateAll>
你可以通过简单的JSF facets和CSS样式配置这些高亮显示的错误信息。也可以在无效字段前加入有CSS样式修饰的错误提示图片。如下所示,当验证失败时,<s:message/>将显示验证注解中的信息属性。
<f:facet name=”beforeInvalidField”>
<h:graphicImage styleClass=”errorImg” value=”error.png”/>
</f:facet>
<f:facet name=”afterInvalidField”>
<s:message styleClass=”errorMsg” />
</f:facet>
<f:facet name=”aroundInvalidField”>
<s:div styleClass=”error”/>
</f:facet>
使用基于Ajax的JSF控件,你无需提交任何表单,就可以进行输入字段的验证。
分享到:
相关推荐
1. **JSF组件**:JSF提供了一系列预定义的UI组件,如输入字段、按钮、表单等,这些组件可以方便地在页面上布局并处理用户交互。在这个登录项目中,可能会用到`h:inputText`(用于用户名和密码输入)、`h:...
例如,当用户在表单中输入信息并提交时,JSF可以使用AJAX来验证输入,即时反馈错误,而不必跳转到新的页面。 【JSF与Hibernate集成】 JSF和Hibernate的集成通常用于构建数据驱动的Web应用。通过使用JSF的 Managed ...
在本文中,我们将深入探讨如何将JavaServer Faces (JSF) 框架与Hibernate ORM 和Tiles 模板引擎整合,以实现一个完整的登录系统。这个整合实例使用了SQL Server Management Studio Express 数据库来存储用户信息,...
在Java Web开发中,Hibernate是一个流行的ORM(对象关系映射)框架,它使得Java程序员能够方便地操作数据库,而无需直接编写SQL语句。另一方面,JSF(JavaServer Faces)是一种用于构建用户界面的MVC(模型-视图-...
在“jsf+hibernate”结合的项目中,JSF通常负责接收前端用户的登录请求,处理表单数据,并调用后端的Hibernate服务进行数据验证和查询。当用户提交登录信息时,JSF会将这些数据传递给后台的Java Managed Beans ...
JSF提供了标准的导航机制,通过在配置文件中定义导航规则来实现页面间的跳转。 ##### 6.3 远程导航 远程导航指的是从一个JSF应用跳转到另一个应用。这种导航方式在开发大型分布式系统时非常有用。 ##### 6.4 小结...
在这个测试案例中,Spring 可能用于配置和管理 JSF 和 Hibernate 组件,实现业务逻辑的解耦,以及提供事务管理和数据访问支持。 **Hibernate** 是一个流行的 ORM(对象关系映射)框架,它允许开发者用 Java 对象来...
8. **异常处理和验证**:JSF提供了内置的验证框架,可以为输入字段添加验证规则,防止无效数据进入数据库。同时,通过捕获和处理异常,确保程序的健壮性。 综上所述,"jsf+hibernate+javabean完成对表的增删查改...
**JSF(JavaServer Faces)** ...通过学习这个例子,开发者可以深入了解如何在实际项目中结合使用JSF、Spring和Hibernate,提高开发效率,降低维护成本。同时,这也是理解Java企业级开发流程和最佳实践的一个良好起点。
【Spring+Hibernate+JSF实例】是一个综合性的项目,展示了如何在Java开发环境中整合这三个关键技术。Spring是一个开源的Java框架,主要关注于依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented ...
在JSF+Spring+Hibernate集成中,Spring通常负责管理Hibernate SessionFactory和SessionFactory的生命周期,提供透明的事务管理。通过Spring的HibernateTemplate或HibernateDaoSupport类,可以方便地在JSF的后台bean...
这可以通过在Bean中定义验证方法或者使用JSF提供的Validator接口实现。 5. **会话管理**:在登录成功后,通常会将用户信息保存在session中,以便后续页面访问时能识别用户身份。JSF提供了`FacesContext`对象来操作...
JSF提供了丰富的UI组件,可以方便地处理用户输入,进行服务器端验证,以及管理页面导航。Spring是一个全面的企业级应用框架,它强调依赖注入(Dependency Injection)和面向切面编程(AOP),提供了事务管理、安全...
9. **导航和错误处理**:JSF的导航规则定义了用户操作后页面的跳转路径,而错误处理则可以捕获并显示验证或业务逻辑中的异常。 在给出的**JSFHibernate实例**中,`JSFHibernate`这个文件名可能是项目的根目录或者...
在JSF应用中,通常会使用Hibernate作为持久层框架,将数据模型对象与数据库表对应起来。 **Spring框架** Spring 是一个全面的企业级应用开发框架,它提供了依赖注入(DI)、面向切面编程(AOP)、数据访问/集成、...
JSF 2.x是MVC架构的一部分,负责生成动态网页内容,而PrimeFaces的组件则丰富了JSF的功能,提供了诸如输入验证、数据双向绑定等特性,使得开发者能够快速构建复杂的Web界面。 【压缩包子文件的文件名称列表】:尽管...
这个登录示例项目可以帮助开发者理解如何在实际应用中整合JSF、Hibernate和Spring,实现用户认证功能。通过学习和实践这样的项目,可以提升对这些框架的掌握程度,并了解如何在实际开发中解决类似问题。
在IT领域,Spring、Hibernate和JSF是三个极为重要的框架,它们各自在应用程序开发中承担着关键的角色。Spring作为一款全面的后端框架,提供了强大的依赖注入(DI)和面向切面编程(AOP)功能,极大地简化了Java应用...
在JSF、Spring和Hibernate的集成应用中,实现用户登录可能涉及到以下步骤: 1. 创建用户实体类,包含用户名和密码属性。 2. 使用Hibernate配置数据库表并映射实体,处理用户的注册和信息存储。 3. 在JSF中创建登录...
在提供的压缩包"JSF_Spring_Hibernate_Demo01"中,可能包含了配置文件(如`faces-config.xml`, `spring-context.xml`, `hibernate.cfg.xml`),Java源代码(实体类、DAO层、服务层、JSF的Managed Beans等),以及...