balusc提供了关于如何使用JSF转换器以及为什么这里需要转换的明确答案,但我的问题是为什么要麻烦?在我看来,一门专门用于转化的额外课程似乎太多了。为什么不让支持bean的setSelectedXXX()方法接受字符串而不是对象,并在那里而不是在转换器中进行转换呢。getAsObject()?事实上,对我来说,将支持bean的setSelectedXXX()方法命名为setSelectedXXXByName()或setSelectedXXXById()似乎更清楚。
我的具体问题是,我的backing bean包含selectItems列表,我需要通过名称或ID来迭代这些列表,而不是转换类。当然,转换器可以调用backingBean。getXXX()来获取这个列表,但在我看来,将逻辑置于支持bean之外似乎是分裂的。我失踪有什么好的理由吗?
为什么要烦恼转换器?
因为一个优秀的软件开发者会为德米特定律而烦恼。
事实上,对我来说,将支持bean的setSelectedXXX()方法命名为setSelectedXXXByName()或setSelectedXXXById()似乎更清楚。
事实上,这样的方法在另一个支持bean中的可重用性不是很好,因为您恰好需要执行完全相同的转换。因此,这种方法很容易被复制,这反过来违反了“干”和“吻”。
只需使用BaseEntityConverter
或omniface。选择ItemsConverter
以拥有一个您永远不需要担心的转换器。
问题内容: 什么时候以及为什么有人要执行以下操作: 你做过吗?您能否分享您的经验? 问题答案: 如果重载,则需要显式将null强制转换为,以便选择正确的重载: 调用varargs函数时,需要进行强制转换的情况是: 最后一行将产生以下警告: Example.java:26:警告:varargs方法的无变量调用,最后一个参数的参数类型不精确; 强制转换为varargs调用 强制转换为非varargs调
问题内容: “在删除不可见的类之前,需要触发重排,以使过渡按预期进行。” 我的问题是: 1)为什么需要触发回流? 2)我知道我们应该避免使用重排,如果确实如此,那么为什么作者建议使用重排以使过渡正常工作? 3)除了使用回流以外,还有其他方法可以使过渡工作吗? 谢谢。 问题答案: (有效地:“为什么我不能 轻易 在属性中使用过渡”) 简短答案 : CSS过渡依赖于元素的 开始 或 静态 属性。将元素
问题内容: 我正在使用Java 1.6.0_25。 我定义了一个注释: 后来当我使用getAnnotation时: 编译器和IDE同意我必须强制转换结果,但是getAnnotation在Java 1.5文档中声明为: 由于Resource.class是Class类型,在我看来,这意味着cls.getAnnotation(Resource.class)应该返回Resource类型,并且我需要进行强制
问题内容: 我发现一些代码我工作的地方的点被强制转换,因为它是传递给方法。 为什么要这样做? 我知道这个问题涉及重载的方法,并使用类型转换来确定要调用的方法的版本。 但是,如果不执行强制类型转换,如果使用空参数调用该方法,那么是否会重选带有其他类型的参数的重载方法呢?那么演员阵容还能完成什么呢? 问题答案: 如果 未 执行转换,则将选择 最具体的 版本。 可以是type 或type 的空引用。因此
问题内容: 我有一个子过程命令,输出一些字符,例如’\ xf1’。我正在尝试将其解码为utf8,但出现错误。 上面抛出: 当我使用’latin-1’时它可以工作,但是utf8也不能工作吗?我的理解是latin1是utf8的子集。 我在这里想念什么吗? 编辑: 问题答案: 您已经将Unicode与UTF-8混淆了。Latin-1是Unicode的子集,但不是UTF-8的子集。 避免像瘟疫一样思考各个
我必须在我的学院的一门课程中使用DB2。我在Windows10上,安装了DB2Express C,安装了Data Studio。在安装过程中,我使用了'db2admin'作为用户名,'admin'作为密码。然后,我运行了我们的教师提供的一系列SQL脚本,以生成我们需要的所有表并填充它们。这显然也奏效了。 问题来了。所有的表都是在“Aleksa”模式下制作的,它恰好是我的计算机用户名。 从命令行,我