页面showInfo.jsp代码如下:<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Test List</title>
</head>
<body>
<f:view>
<h:dataTable value="#{testTable.userList}" var="#{userBean}">
<h:column>
<h:outputText value="#{userBean.userId}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.userName}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.userPassword}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.address}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.age}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.workPlace}"></h:outputText>
</h:column>
<h:column>
<h:outputText value="#{userBean.workMoney}"></h:outputText>
</h:column>
</h:dataTable>
</f:view>
</body>
</html>
faces-config.xml配置代码如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd"><faces-config>
<navigation-rule>
<from-view-id>/index.jsp</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/showInfo.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failed</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>userBean</managed-bean-name>
<managed-bean-class>userBeanPac.UserBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>testTable</managed-bean-name>
<managed-bean-class>TestTableBean.TableBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>UserBean类代码:[code=Java]
package userBeanPac;public class UserBean {
private String userId;
private String userName;
private String userPassword;
private String userAddress;
private Integer age;
private String workPlace;
private Integer workMoney;
private String erromessage; public UserBean() { } public UserBean(String userId, String userName, String userPassword,
String userAddress, Integer age, String workPlace, Integer workMoney) {
this.userId = userId;
this.userName = userName;
this.userPassword = userPassword;
this.userAddress = userAddress;
this.age = age;
this.workPlace = workPlace;
this.workMoney = workMoney;
} public String getUserId() {
return userId;
} public void setUserId(String userId) {
this.userId = userId;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getUserPassword() {
return userPassword;
} public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
} public String getUserAddress() {
return userAddress;
} public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public String getWorkPlace() {
return workPlace;
} public void setWorkPlace(String workPlace) {
this.workPlace = workPlace;
} public Integer getWorkMoney() {
return workMoney;
} public void setWorkMoney(Integer workMoney) {
this.workMoney = workMoney;
} public String getErromessage() {
return erromessage;
} public void setErromessage(String erromessage) {
this.erromessage = erromessage;
} public String checkNull() {
if (userName.equals("") || userPassword.equals("")) {
erromessage = "用户名和密码不能为空";
return "failed";
} else {
return "success";
}
}
}
其中一个关联的TableBean类的代码:package TestTableBean;import java.util.ArrayList;
import java.util.List;import com.sun.org.apache.bcel.internal.generic.NEW;import userBeanPac.UserBean;public class TableBean {
@SuppressWarnings("unchecked")
private List userList; //
// public List getUserList() {
// return userList;
// }
//
// public void setUserList(List userList) {
// this.userList =s userList;
// }
// @SuppressWarnings("unchecked")
public List bindSetList() {
// System.out.println("beging there 1");
if (userList == null) {
userList = new ArrayList();
System.out.println("beging there 'if'");
userList.add(new UserBean("D0001", "D0001", "D0001", "D0001", 25,
"D0001", 2000));
userList.add(new UserBean("D0002", "D0002", "D0002", "D0002", 27,
"D0002", 2000));
userList.add(new UserBean("D0003", "D0003", "D0003", "D0003", 28,
"D0003", 2000));
userList.add(new UserBean("D0004", "D0004", "D0004", "D0004", 29,
"D0004", 2000));
userList.add(new UserBean("D0005", "D0005", "D0005", "D0005", 30,
"D0005", 2000));
// System.out.println("end there 'if'");
// System.out.println(userList.get(0).toString());
return userList;
} else {
return userList;
}
}
}

解决方案 »

  1.   

    产生异常如下:
    2010-7-14 10:18:13 org.apache.catalina.core.ApplicationDispatcher invoke
    严重: Servlet.service() for servlet jsp threw exception
    javax.faces.el.PropertyNotFoundException: Error getting property 'userList' from bean of type TestTableBean.TableBean
    at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:107)
    at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:162)
    at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
    at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:238)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:155)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:136)
    at javax.faces.component.UIData.getValue(UIData.java:560)
    at javax.faces.component.UIData.getDataModel(UIData.java:886)
    at javax.faces.component.UIData.setRowIndex(UIData.java:412)
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:98)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:676)
    at javax.faces.component.UIData.encodeBegin(UIData.java:719)
    at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:574)
    at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:526)
    at com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:485)
    at org.apache.jsp.showInfo_jsp._jspx_meth_h_005fdataTable_005f0(showInfo_jsp.java:178)
    at org.apache.jsp.showInfo_jsp._jspx_meth_f_005fview_005f0(showInfo_jsp.java:112)
    at org.apache.jsp.showInfo_jsp._jspService(showInfo_jsp.java:76)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:142)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    2010-7-14 10:18:13 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet Faces Servlet threw exception
    javax.faces.el.PropertyNotFoundException: Error getting property 'userList' from bean of type TestTableBean.TableBean
    at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:107)
    at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:162)
    at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
    at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:238)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:155)
    at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:136)
    at javax.faces.component.UIData.getValue(UIData.java:560)
    at javax.faces.component.UIData.getDataModel(UIData.java:886)
    at javax.faces.component.UIData.setRowIndex(UIData.java:412)
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:98)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:676)
    at javax.faces.component.UIData.encodeBegin(UIData.java:719)
    at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:574)
    at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:526)
    at com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:485)
    at org.apache.jsp.showInfo_jsp._jspx_meth_h_005fdataTable_005f0(showInfo_jsp.java:178)
    at org.apache.jsp.showInfo_jsp._jspx_meth_f_005fview_005f0(showInfo_jsp.java:112)
    at org.apache.jsp.showInfo_jsp._jspService(showInfo_jsp.java:76)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:142)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  2.   

    <h:dataTable value="#{testTable.userList}" var="#{userBean}">
    userList在testTable没有实例化,set、get方法。
      

  3.   

     
     
    userList在testTable没有实例化,set、get方法。
     
      

  4.   

    你干嘛把 get 和 set 方法注释了??
    页面要获取backBean 中的属性元素 必须使用  get 和 set 方法
    给你做个修改 再试试package TestTableBean;import java.util.ArrayList;
    import java.util.List;import com.sun.org.apache.bcel.internal.generic.NEW;import userBeanPac.UserBean;public class TableBean {
        @SuppressWarnings("unchecked")
        private List userList;    //    
         public List getUserList() {
            return bindSetList();
         }
        //    
         public void setUserList(List userList) {
           this.userList =s userList;
         }
        // @SuppressWarnings("unchecked")
        public List bindSetList() {
            // System.out.println("beging there 1");
            if (userList == null) {
                userList = new ArrayList();
                System.out.println("beging there 'if'");
                userList.add(new UserBean("D0001", "D0001", "D0001", "D0001", 25,
                        "D0001", 2000));
                userList.add(new UserBean("D0002", "D0002", "D0002", "D0002", 27,
                        "D0002", 2000));
                userList.add(new UserBean("D0003", "D0003", "D0003", "D0003", 28,
                        "D0003", 2000));
                userList.add(new UserBean("D0004", "D0004", "D0004", "D0004", 29,
                        "D0004", 2000));
                userList.add(new UserBean("D0005", "D0005", "D0005", "D0005", 30,
                        "D0005", 2000));
                // System.out.println("end there 'if'");
                // System.out.println(userList.get(0).toString());
                return userList;
            } else {
                return userList;
            }
        }
    }
      

  5.   

     <h:dataTable value="#{testTable.userList}" var="#{userBean}">
    这段也有问题
    应该是 <h:dataTable value="#{testTable.userList}" var="userBean">
    face-config 文件中下面这一段可以不需要了:
    <managed-bean>
            <managed-bean-name>userBean</managed-bean-name>
            <managed-bean-class>userBeanPac.UserBean</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>