我试图找出我是否完全需要转换器,如果需要,如何最好地实现转换器。
每当要将非标准Java对象从HTTP请求传递到另一个HTTP请求时,都需要一个转换器。非标准我的意思是 不是
一个
String,
Number或
Boolean。这全是因为HTTP请求参数
只能
是
Strings。这
Number和
Boolean作品是因为EL可以识别它们,并已内置的强制它。
对于非标准Java对象,您需要在
javax.faces.convert.Converter将其显示为HTML之前,在方法内部实现一个将Object转换为a
String(或所需的a
Number,例如
Long id,可以是数据库表中相关行的PK)的a
getAsString()。您可以
getAsObject()在处理请求参数的过程中对方法进行另一种处理(例如,通过DAO从DAO获取关联的对象
id)。
你可以找到这里的如何使用的例子
Converter的
h:selectOneMenu。您会看到本文也包含其他方法,但是您需要在后备bean中做更多的工作来自己转换(映射)对象。



