`
bingxue2332
  • 浏览: 16497 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

JSF的问题,希望那位可以指出问题所在

阅读更多
backbean的所有代码
  1. package org.hblz.common.web.jsf;   
  2.   
  3. import javax.faces.component.html.HtmlSelectOneListbox;   
  4. import javax.faces.event.ValueChangeEvent;   
  5. import javax.faces.model.SelectItem;   
  6.   
  7. import org.apache.log4j.Logger;   
  8.   
  9. public class UserBean {   
  10.   
  11.     @SuppressWarnings("unused")   
  12.     private static final Logger log = Logger.getLogger(UserBean.class);   
  13.   
  14.     private String message;   
  15.   
  16.     private SelectItem[] countyList = new SelectItem[0];   
  17.   
  18.     private Long countyId;   
  19.   
  20.     private HtmlSelectOneListbox countySelectList;   
  21.   
  22.     private SelectItem[] townList = new SelectItem[0];   
  23.   
  24.     private Long townId;   
  25.   
  26.     private HtmlSelectOneListbox townSelectList;   
  27.   
  28.     public void processCountySelectListChange(ValueChangeEvent event) {   
  29.   
  30.         this.message = "hello county!";   
  31.   
  32.         Long newValue = (Long) event.getNewValue();   
  33.   
  34.         townList = null;   
  35.   
  36.         townList = new SelectItem[10];   
  37.         for (int i = 0; i < 10; i++) {   
  38.             SelectItem st = new SelectItem(new Long(i), "Town No." + i   
  39.                     + " of County No." + newValue.toString());   
  40.             townList[i] = st;   
  41.         }   
  42.     }   
  43.   
  44.     public void processTownSelectListChange(ValueChangeEvent event) {   
  45.     }   
  46.   
  47.     public Long getCountyId() {   
  48.         return countyId;   
  49.     }   
  50.   
  51.     public void setCountyId(Long countyId) {   
  52.         this.countyId = countyId;   
  53.     }   
  54.   
  55.     public SelectItem[] getCountyList() {   
  56.         countyList = new SelectItem[30];   
  57.         for (int i = 0; i < 30; i++) {   
  58.             SelectItem st = new SelectItem(new Long(i), "No." + i);   
  59.             countyList[i] = st;   
  60.         }   
  61.   
  62.         return countyList;   
  63.     }   
  64.   
  65.     public void setCountyList(SelectItem[] countyList) {   
  66.   
  67.         this.countyList = countyList;   
  68.     }   
  69.   
  70.     public javax.faces.component.html.HtmlSelectOneListbox getCountySelectList() {   
  71.         return countySelectList;   
  72.     }   
  73.   
  74.     public void setCountySelectList(   
  75.   
  76.     javax.faces.component.html.HtmlSelectOneListbox countySelectList) {   
  77.         this.countySelectList = countySelectList;   
  78.     }   
  79.   
  80.     public String getMessage() {   
  81.         return message;   
  82.     }   
  83.   
  84.     public void setMessage(String message) {   
  85.         this.message = message;   
  86.     }   
  87.   
  88.     public Long getTownId() {   
  89.         return townId;   
  90.     }   
  91.   
  92.     public void setTownId(Long townId) {   
  93.         this.townId = townId;   
  94.     }   
  95.   
  96.     public SelectItem[] getTownList() {   
  97.   
  98.         if (townList == null) {   
  99.             townList = new SelectItem[0];   
  100.         }   
  101.   
  102.         return townList;   
  103.     }   
  104.   
  105.     public void setTownList(SelectItem[] townList) {   
  106.         this.townList = townList;   
  107.     }   
  108.   
  109.     public HtmlSelectOneListbox getTownSelectList() {   
  110.         return townSelectList;   
  111.     }   
  112.   
  113.     public void setTownSelectList(HtmlSelectOneListbox townSelectList) {   
  114.         this.townSelectList = townSelectList;   
  115.     }   
  116. }   

配置文件很简单

  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <!---->>  
  3.   
  4. <faces-config>  
  5.        
  6.     <managed-bean>  
  7.         <managed-bean-name>userBeanmanaged-bean-name>  
  8.         <managed-bean-class>  
  9.             org.hblz.common.web.jsf.UserBean   
  10.         managed-bean-class>  
  11.         <managed-bean-scope>requestmanaged-bean-scope>  
  12.     managed-bean>  
  13.        
  14.        
  15. faces-config>  
  16.   

 

下面是JSP代码

xml 代码
  1. <%@ page language="java" pageEncoding="ISO-8859-1"%>  
  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>  
  3. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>  
  4.   
  5. <%   
  6.     String path = request.getContextPath();   
  7.     String basePath = request.getScheme() + "://"   
  8.             + request.getServerName() + ":" + request.getServerPort()   
  9.             + path + "/";   
  10. %>  
  11.   
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  13. <html>  
  14.     <head>  
  15.         <base href="<%=basePath%>">  
  16.   
  17.         <title>My JSF 'hello.jsp' starting page</title>  
  18.     
  19.     </head>  
  20.   
  21.     <body>  
  22.         <f:view>  
  23.             <h:form>  
  24.                 <h:selectOneListbox id="countySelectList"  
  25.                     value="#{userBean.countyId}" binding="#{userBean.countySelectList}"  
  26.                     size="1" onchange="this.form.submit()"  
  27.                     valueChangeListener="#{userBean.processCountySelectListChange}"  
  28.                     immediate="true">  
  29.                     <f:selectItems value="#{userBean.countyList}" />  
  30.                 </h:selectOneListbox>  
  31.   
  32.                 <h:selectOneListbox id="townSelectList" value="#{userBean.townId}"  
  33.                     binding="#{userBean.townSelectList}" size="1"  
  34.                     onchange="this.form.submit()"  
  35.                     valueChangeListener="#{userBean.processTownSelectListChange}"  
  36.                     immediate="true">  
  37.                     <f:selectItems value="#{userBean.townList}" />  
  38.                 </h:selectOneListbox>  
  39.   
  40.   
  41.                 <h:outputText value="#{userBean.message}"></h:outputText>  
  42.             </h:form>  
  43.         </f:view>  
  44.     </body>  
  45. </html>  
分享到:
评论
4 楼 snakeskin 2008-04-08  
验证器出现了错误,在validate phase这个阶段,获得的下拉列表为空,所以验证失败,用session bean能解决这个问题
3 楼 penghao122 2007-04-20  
断点跟踪一下。。

某些是空的
2 楼 jones 2007-04-20  
表达式:#{userBean.countyId}计算的值没有包含在下拉列表的值中,
selectOneListbox是通过value值来确定那个被选中的,如果List提供的可选值中没有value属性指定的值就会 NoSuchElementException
这个异常是说value的值在控件所提供的选项中不存在具有这个值的选项的意思!
1 楼 bingxue2332 2007-04-19  
问题是第一次打开和第一次操作都没有问题,但是当操作一次在下拉后就出现了错误,错误信息如下:
java.util.NoSuchElementException
javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:96)
javax.faces.component.SelectItemsIterator.next(SelectItemsIterator.java:119)
javax.faces.component.UISelectOne.matchValue(UISelectOne.java:141)
javax.faces.component.UISelectOne.validateValue(UISelectOne.java:114)
javax.faces.component.UIInput.validate(UIInput.java:634)
javax.faces.component.UIInput.executeValidate(UIInput.java:838)
javax.faces.component.UIInput.processDecodes(UIInput.java:383)
javax.faces.component.UIForm.processDecodes(UIForm.java:144)
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:872)
javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:306)
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:79)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)

相关推荐

    jsf实例jsf实例 JSF学习 JSF jar包 JSF

    jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF

    jsf分页 jsf分页 jsf分页

    用户可能希望调整每页显示的记录数,为此,可以在界面提供一个下拉框让用户选择。后端需要相应地更新每页记录数,并重新计算和加载数据。 7. **状态管理**: 考虑到JSF的请求范围,确保分页状态(当前页、每页...

    JSF中文教程jsf

    通过深入学习JSF,开发者不仅可以提高Web应用的开发效率,还能利用Java EE的全面功能来构建健壮、可维护的企业级应用程序。因此,无论你是初学者还是有经验的开发者,理解并掌握JSF都是提升技能树的重要一步。

    JSF中文问题解决方法完整版

    3. **JSF组件属性**:JSF的输入组件如`h:inputText`,可以通过`converter`属性指定一个自定义的转换器,处理中文字符的编码问题。同时,确保在JSF的视图文件(通常是.xhtml)中,页面头部的`&lt;f:view&gt;`标签也指定了...

    jsf第一个例子 jsf架包 jsf实例

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它为开发人员提供了一种模型-视图-控制器(MVC)架构,简化了前端和后端之间的交互。JSF提供了组件库,使得创建动态、交互式的...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    这些Bean可以通过JSF EL(Expression Language)在视图层中访问,也可以接收和返回数据。 ### JSF事件类型 JSF支持多种事件类型,这些事件可以在组件之间或应用程序级别触发。例如: - **组件级事件**:发生在特定...

    JSF上传 JSF大文件上传 JSF上传代码 JSF上传源代码

    JSF(JavaServer Faces)是Java...对于希望学习或改进自己JSF文件上传功能的开发者来说,这是一个宝贵的资源。通过深入研究源代码,可以了解到如何处理大文件、如何优化上传性能以及如何确保上传过程的稳定性和安全性。

    JSF包,jsf包,JSF包,jsf包

    3. **编写后台逻辑**:在Java类中实现业务逻辑,这些类可以是JSF Managed Beans,它们与视图进行交互,处理用户请求和数据操作。 4. **部署和测试**:将应用打包成WAR文件,部署到支持Java EE的服务器,如Tomcat、...

    JSF入门+JSF web实战+JSF2

    同时,JSF社区提供了丰富的资源和插件,如PrimeFaces和RichFaces,这些都可以作为扩展JSF功能和提升用户体验的工具。总之,JSF是一个强大的Web开发框架,掌握了它,就能更好地应对企业级Web应用的挑战。

    core jsf 1.2 jsf 核心

    **JSF 1.2核心详解** JavaServer Faces (JSF) 是Java平台上的一个用于构建用户界面的组件模型框架,特别适用于Web...而`core jsf.chm`文件很可能是关于JSF 1.2的官方文档或教程集合,可以帮助深入学习和掌握这些概念。

    jsf视频jsf视频0

    jsf 视频 java faces jsf 视频 java faces jsf 视频 java faces

    《JSF_实战》非常好的JSF学习书

    《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF学习书《JSF_实战》非常好的JSF...

    jsf 文档 jsf

    jsf 文档 jsf 文档 jsf 文档 jsf 文档

    精通JSF中文教程精通JSF中文教程

    Managed Beans是JSF中的核心概念,它们作为业务逻辑的载体,可以被JSF框架自动管理。开发者可以定义属性和方法,实现后端逻辑,并通过EL(Expression Language)在视图层与之交互。 **5. EL表达式** EL是一种简洁的...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架...

    JSF开发必备JAR

    ================================= JSF开发必备JAR ================================= &lt;br&gt;《JSF入门简单中文版》开篇提到JSF开发需要的...尽一点微薄之力,希望后面刚开始学JSF的朋友 少走弯路:)

    JSF帮助文档

    标签“jsf”直接指向JSF技术,意味着文档内容可能涉及JSF的使用、教程、最佳实践或者是解决JSF开发中遇到的问题。由于提供的文件内容主要是邮件头信息和HTML格式的元数据,它们并不直接包含JSF的具体知识点。但是,...

    JSF文件下载实现

    在JSF页面中,可以利用`&lt;h:outputLink&gt;`组件结合JSP页面来实现文件下载。`&lt;h:outputLink&gt;`的`value`属性指向JSP页面,通过传递参数(如`filename`)来指定要下载的文件。JSP页面接收这些参数并调用下载方法。 总之...

    介绍JSF框架的PPT

    ### JSF框架详解 #### 一、什么是JSF? JavaServer Faces (简称JSF) 是一个基于Java EE标准的Web应用程序框架,旨在简化Web...对于希望构建高度可维护和易于扩展的Web应用程序的开发者来说,JSF是一个值得考虑的选择。

Global site tag (gtag.js) - Google Analytics