关于jsf datatable的使用的问题

今天在调试jsf ,在调试jsf 的时候我在使用表单的时候,使用了jsf的组件datatable,但是在显示的时候确实老是出现同样的一个问题,报错如下显示:

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Expression: '#{name.last}'
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:125)

 

root cause

javax.faces.FacesException: Expression: '#{name.last}'
	org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:411)
	org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:280)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
    好像是我没有绑定name中的last值,但是我有的,下面是我的代码的一部分,请大侠们指教:)
 
  
index.jsp的 代码
  1. <html>  
  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>  
  3. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>  
  4.   <f:view>  
  5.    <HEAD>  
  6.      <title>  
  7.       <f:loadBundle basename="com.corejsf.messages" var="msgs"/>  
  8.       <h:outputText value="#{msgs.windowTitle}"/>  
  9.       <title>  
  10.       <HEAD>  
  11.       <body>  
  12.        <h:form>  
  13.        <h:dataTable value="#{tableDate.names}" var="names">  
  14.          <h:column>  
  15.          <f:facet name="header">  
  16.             <h:outputText value="#{msgs.editColumn}" style="font-weight:bold"/>  
  17.             <f:facet>  
  18.             <h:selectBooleanCheckbox value="#{tableDate.editable}" onclick="submit()"/>  
  19.          <h:column>  
  20.             <h:column>  
  21.            
  22.          <f:facet name="header">  
  23.             <h:outputText value="#{msgs.lastnameColumn}" style="font-weight:bold"/>  
  24.             <f:facet>  
  25.             <h:inputText value="#{name.last}" rendered="#{tableDate.editable}" size="10"/>  
  26.             <h:outputText value="#{name.last}" rendered="#{not tableDate.editable}"/>  
  27.        
  28.          h:column>  
  29.              
  30.             <h:column>  
  31.          <f:facet name="header">  
  32.             <h:outputText value="#{msgs.firstnameColumn}" style="font-weight:bold"/>  
  33.             <f:facet>  
  34.             <h:inputText value="#{name.first}" rendered='#{tableDate.editable}' size="10"/>  
  35.             <h:outputText value="#{name.first}" rendered="#{not tableDate.editable}"/>  
  36.        
  37.          h:column>  
  38.          h:dataTable>  
  39.          <p>  
  40.          <h:commandButton value="#{msgs.sveChangesButtonText}"/>  
  41.        h:form>  
  42.    f:view>  
  43.   
  44. >  
faces-config.xml 代码
  1. <managed-bean>  
  2.     <managed-bean-name>tableDatemanaged-bean-name>  
  3.     <managed-bean-class>com.jsf.TableDatamanaged-bean-class>  
  4.     <managed-bean-scope>sessionmanaged-bean-scope>  
  5.        
  6. >  
TableData.java 代码
  1. package com.jsf;   
  2.   
  3. public class TableData {   
  4.       private static final Name[] names=new Name[]{   
  5.     
  6.           new Name("李","四"),   
  7.           new Name("张","三"),   
  8.           new Name("王","五"),   
  9.           new Name("柳","六"),   
  10.           new Name("赵","七"),   
  11.       };   
  12.       public Name[] getNames(){return names;}   
  13.          
  14.       private boolean editable=true;   
  15.     public boolean isEditable() {   
  16.         return editable;   
  17.     }   
  18.     public void setEditable(boolean editable) {   
  19.         this.editable = editable;   
  20.     }   
  21. }   
还有就是name.java的代码就不列出了,无非就是一些属性的声明之类的东东:)

你可能感兴趣的:(关于jsf datatable的使用的问题)