论坛首页 入门技术论坛

关于jsf的selectItem问题

浏览 5146 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-01-11  
以下是一段很简单的测试程序
public class Test {
  private Integer testint;
  // get and set
}

<h:selectOneMenu id="testint" value="#{Test.testint}" >
  <f:selectItem itemLabel="Value 1" itemValue="1" />
  <f:selectItem itemLabel="Value 2" itemValue="2" />
</h:selectOneMenu>

提交后得到Validation Error: Value is not valid错误
初步判断应该是我定义的itemValue="1"可能被认为是字符串,在中间加了<f:convertNumber/>但还是没有用

谢谢
   发表时间:2007-01-11  
换成myfaces实现就没有这个问题了,呵呵
0 请登录后投票
   发表时间:2007-01-11  
SUN 实现的问题
0 请登录后投票
   发表时间:2007-01-12  
public class Test {  
  private String testint;  
  // get and set  
}  

<h:selectOneMenu id="testint" value="#{Test.testint}" >
selectOneMenu这个标签只能绑字符串.
0 请登录后投票
   发表时间:2007-02-09  
sun的参考实现有很多问题,所以我们现在用的都是myfaces,楼上的说selectOneMenu只能绑定字符串是不正确的,所有标签接受用户输入的值传回一个request时都是文本字符串,jsf会判断你映射的属性的java类型并自动调用其内置且默认的类型转换器(所有基本java类型如Integer、String、Boolen等等,都有对应的内置类型转换器,当然也可以定义你自己的实现)进行转换,转换成功之后,会继续调用相应类型的验证器进行数据有效性的验证。楼主给出的错误消息是一个验证出错的消息,而不是转换出错,所以就算指定也是指定验证器,而不是converter(转换器),当然也不排除由于转换虽然成功,但转换的结果实际是不正确而导致验证失败的可能性的。
0 请登录后投票
   发表时间:2007-02-09  
当然了,不要用sun的实现,用myfaces就好了
0 请登录后投票
   发表时间:2007-07-19  
chibi 写道
换成myfaces实现就没有这个问题了,呵呵

出现同样的问题啊
0 请登录后投票
   发表时间:2007-07-19  
sorry.输入错误!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics