论坛首页 入门技术论坛

大家帮我看看,我的JSF程序为什么总是IllegalArgumentException

浏览 2461 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-28  
程序的环境
eclipse 3.2
myeclipse 5.1
hibernate 3.1(myeclipse add capacity自动加载的)
jstl 1.1(同样是自动加载的)
sun jsf 1.1.01(同样是自动加载的)
j2se sdk 1.6
mysql 5.0
tomcat 5.5.20

在网上看了很多教程,
我在myeclipse5里也做一个简单的login程序,

但是老是出现错误,我的程序就只有三个页面 一个index.jsp,一个success.jsp和fail.jsp
不知道为什么在index.jsp里绑定bean时就老出现IllegalArgumentException这样的错误或是说bean无法初始
数据库用hibernate连的,写了两个.java的文件测试能正常运行
我的数据库也非常简单 一个表只有三个健值  id(BINGINT) username(varchar(20)) password(varchar(20))


大家能不能帮我看看我的程序,帮我改改.....都两三个月了,我还是没能正常写出一个jsf程序,总是处处碰壁
  • JSFTest2.rar (59.9 KB)
  • 描述: 程序的代码,不过是去掉了lib,因为太大了
  • 下载次数: 12
   发表时间:2007-03-16  
<h:inputText binding="#{userBean.username}" value="username"
maxlength="20"></h:inputText>
<br>
<h:inputText binding="#{userBean.password}" value="password"
maxlength="20"></h:inputText>
上面是从你的代码里copy出来的,注意粗体部分。
jsf中的绑定有两种,一种是组件绑定,一种是值绑定。
binding是组件绑定,它是通过EL表达式和后台Bean中的某个属性绑定,而这个属性的类型必须是该组件类型,按你这里的标签是<h:inputText />,对应的组件类型则是javax.faces.component.html.HtmlInputText。所以需要组件绑定的话,就必须在你的后台Bean里声明这样一个类型的属性,在标签里使用binding通过EL表达式将这个属性与页面组件进行绑定,绑定以后就意味着你可以直接在Bean里通过对该属性的引用来操作组件树上的这个组件。
value是值绑定,也是必须通过EL表达式进行绑定,这个才是你现在所理解的和需要的绑定,这个绑定才是将该组件得到的用户输入值和后台Bean的某个属性(比如name之类)进行绑定。

你这里根本没用到组件绑定,只有值绑定,所以正确写法应该是:
<h:inputText value="#{userBean.username}" maxlength="20"></h:inputText>
<br>
<h:inputText value="#{userBean.password}"  maxlength="20"></h:inputText>
0 请登录后投票
论坛首页 入门技术版

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