【发布时间】:2012-07-28 09:21:49
【问题描述】:
我坚持使用 JSF RI 1.1_02 并看到了这个问题。
这是我期望工作的 Facelet 代码:
<h:form>
<h:selectOneMenu value="#{bean.num}" converter="javax.faces.Integer">
<f:selectItem itemLabel="one" itemValue="1" />
<f:selectItem itemLabel="two" itemValue="2" />
<f:selectItem itemLabel="three" itemValue="3" />
</h:selectOneMenu>
<h:commandButton value="submit" />
<h:messages />
</h:form>
请求范围的bean:
public class Bean {
private int num;
public void setNum(Integer aNum) {
num = aNum;
}
public Integer getNum() {
return num;
}
}
我收到了Validation Error: Value is not valid,当我编写了这么少不需要任何转换器的代码时,我已经无法想象我做错了什么。我是否遗漏了一些明显的东西,或者这是 JSF RI 1.1_02 中的错误?
我可以通过简单地将支持 bean 中的属性类型更改为 String 来解决这个问题,但是当我应该进行(自动)转换时,我不得不这样做而感到沮丧。
【问题讨论】:
-
只是想知道,为什么还是 JSF 1.1?它在 6.5 年前被 JSF 1.2 取代,而在 2.5 年前又被 JSF 2.0 取代。请注意,JSF 1.1 兼容环境理论上也应该支持 JSF 1.2,而不会有任何麻烦。
-
大船不容易转弯,也就是说,现在迁移的成本太高了……我想这是大型企业对大量变更控制的权衡。
-
我很惊讶看到您使用的是 Facelets。这是 5.5 年前引入的(在 JSF 1.2 时期)。从 JSF 1.1 而不是 1.2 开始是没有意义的。将 JSP 迁移到 Facelets 比将 JSF 1.1 迁移到 1.2 更难。
-
@billy 您的公司还不如在 FoxPro 中编写应用程序,因为 JSF 1.1 令人讨厌。
-
我们建筑事务所的无限智慧将设计从象牙塔中扔下。
标签: jsf integer selectonemenu jsf-1.1