在Seam中,使用<s:convertEntity/>或者<s:convertEnum/>会方便很多,Seam会自动将用户选中的Entity实例放到对应选择标签的value中。
标签: Converter
JSF Converter in JBoss Seam
折腾了两天,终于在JBoss Seam中搞定了JSF Converter。
在这个程序中,产品(Product)和分类(Category)是多对多的关系,关系维护方为产品,在创建产品时,允许选择多个分类,因为Product.categories是一个List属性,同时产品选择<select />标签也是由从Action中查询出来的所有Category的List,所以在页面上,需要在页面渲染、用户提交后的category进行转换。
显示时,我们以Category.id为<option />的value值,而Category.title为label。
Entity如下(省略setter和getter):
Category.java
@Entity @Table(name = "category") public class Category extends BaseEntity { @Id @GeneratedValue @Column(name = "id", unique = true, nullable = false, length = 10) private Integer id; @Column(name = "title") @NotNull @Length(min = 4, max = 64, message = "{invalid.length}") private String title; @ManyToMany(mappedBy = "categories") private List<product> products = new ArrayList</product><product>(); } </product> |