users@glassfish.java.net

jsf-h:datatable

From: <glassfish_at_javadesktop.org>
Date: Thu, 08 Mar 2007 17:49:04 PST

I am using tomcat 6.0.10 for learning jsf1.2<br>
i have a managed beans & DAO like<br>
package htc.faces;<br>

import java.sql.DriverManager;<br>
import java.sql.PreparedStatement;<br>
import java.sql.Connection;<br>
import java.sql.ResultSet;<br>
import java.sql.ResultSetMetaData; <br>
import java.sql.Statement;<br>

import javax.naming.InitialContext;<br>
import javax.sql.DataSource;<br>

import java.util.ArrayList;<br>
import java.util.HashMap;<br>
import java.util.Map;<br>

public class FHCMemberDAO implements java.io.Serializable<br>
{
    PreparedStatement pstmt;<br>
    Connection con;<br>
    ResultSet rs;<br>
    ResultSetMetaData rsmd;<br>
    DataSource ds = null;<br>
    Statement stmt;<br>
    
    public FHCMemberDAO()<br>
    {
    }<br>
    
    public ArrayList<FHCMemberVO> getMembers()
           throws Exception<br>
    {
     ArrayList<FHCMemberVO> members =
          new ArrayList<FHCMemberVO>(); <br>
     FHCMemberVO member1 = null; <br>

     try
     {
      InitialContext ctx = new InitialContext();<br>
      ds = (DataSource)ctx.lookup("java:comp/env/jdbc/myOraSource");<br>

      con = ds.getConnection();<br>
      stmt = con.createStatement(); <br>
      rs = stmt.executeQuery("select * from fhcmembers");<br>
       while(rs.next())
       {<br>
        member1 = new FHCMemberVO();<br>
        member1.setSecurityNumber(rs.getString(1));<br>
        member1.setName(rs.getString(2));<br>
        member1.setOccupation(rs.getString(3));<br>
        member1.setTotIncome(rs.getDouble(4));<br>
        member1.setAddress(rs.getString(5));<br>
        member1.setCardId(rs.getString(6));<br>
        members.add(member1);<br>
       }<br>
      }
      catch(Exception e)
      {
        throw e;
      }<br>
      finally
      {
        if (con != null)
        {
         con.close();
        }<br>
      }<br>
      System.out.println(members);<br>
      return members;
    }
}<br>

package htc.faces;<br>

import java.util.ArrayList;<br>
import java.util.concurrent.*;<br>

public class FHCMemberManip implements
        java.io.Serializable
{<br>
      private FHCMemberVO member; <br>
      private HospitalLocVO location;<br>
      FHCMemberDAO fhcDAO;<br>
      ArrayList<FHCMemberVO> members; <br>

     
      public FHCMemberManip()<br>
      {
            super();<br>
            member = new FHCMemberVO(); <br>
            fhcDAO = new FHCMemberDAO();<br>
            members = new ArrayList<FHCMemberVO>();<br>
      }<br>

    public ArrayList<FHCMemberVO> getMembers()<br>
    {
       return members;<br>
    }<br>
  
    public void setMembers(ArrayList<FHCMemberVO> mmrs)
    {<br>
       members = mmrs;<br>
    } <br>

  
    public FHCMemberVO getMember()
    {
         return member;<br>
    }<br>

    public void setMember(FHCMemberVO fhc)
    {<br>
          this.member = fhc;<br>
    }<br>

    public HospitalLocVO getLocation()
    {<br>
         return location;<br>
    }<br>

     public void setLocation(HospitalLocVO hlv)
     {<br>
          this.location = hlv;<br>
     }<br>

     public String addMember()
     {<br>
         return "success";<br>
     }<br>

     public String reset()
     {<br>
       this.member.setSecurityNumber("");<br>
       this.member.setAddress("");<br>
       this.member.setCardId("");<br>
       this.member.setName("");<br>
       this.member.setTotIncome(0.0);<br>
       this.member.setOccupation("");<br>
       this.location.setArea("");<br>
       this.location.setCity("");<br>
       this.location.setState("");<br>
      return "success"; <br>
     } <br>
    
     public String getAllMembers()
     {<br>
      try
      {<br>
       ArrayList<FHCMemberVO> members =
                   fhcDAO.getMembers();<br>
          setMembers(members); <br>
      }<br>
      catch(Exception e)
      {
        e.printStackTrace();
      }<br>
      return "success"; <br>
     } <br>
}<br>
package htc.faces;<br>


public class FHCMemberVO implements java.io.Serializable
{<br>
      private String securityNumber;<br>
      private String name;<br>
      private String occupation;<br>
      private String address;<br>
      private String cardId;<br>
      private double totIncome;<br>
      private String location;<br>

      public FHCMemberVO()
      {<br>
      
      }<br>

      public FHCMemberVO(String securityNumber,<br>
                         String name,
                         String occupation,
                         double totIncome)
      { <br>
            this.securityNumber = securityNumber;<br>
            this.name = name;<br>
            this.occupation = occupation;<br>
            this.totIncome = totIncome;<br>
      }<br>

      public String getAddress()
      {<br>
            return this.address;<br>
      }<br>

      public void setAddress(String address)
      {<br>
            this.address = address;<br>
      }<br>

      public String getLocation()
      {<br>
            return this.location;<br>
      }<br>

      public void setLocation(String newLocation)
      {<br>
            this.location = newLocation;<br>
      }<br>


      public String getCardId()
      {<br>
            return this.cardId;<br>
      }<br>

      public void setCardId(String cardId)
      {<br>
            this.cardId = cardId;<br>
      }<br>

      public String getName()
      {<br>
            return this.name;<br>
      }<br>

      public void setName(String name)
      {<br>
            this.name = name;<br>
      }<br>

      public String getOccupation()
      {<br>
            return this.occupation;<br>
      }<br>

      public void setOccupation(String occupation)
      {<br>
            this.occupation = occupation;<br>
      }<br>

      public String getSecurityNumber()
      {<br>
            return this.securityNumber;<br>
      }<br>

      public void setSecurityNumber(String securityNumber)
      {<br>
            this.securityNumber = securityNumber;<br>
      }<br>

      public double getTotIncome()
      {<br>
            return this.totIncome;<br>
      }<br>

      public void setTotIncome(double totIncome)
      {<br>
            this.totIncome = totIncome;<br>
      }<br>

      public String toString()
      {<br>
         StringBuffer sb = new StringBuffer();<br>
         sb.append("Member SSN:"+this.securityNumber+"<br>");<br>
         sb.append(" Name:"+this.name+"<br>");<br>
         sb.append(" Profession:"+this.occupation+"<br>");<br>
         sb.append(" Annual Income:"+this.totIncome+"<br>");<br>
         if(address !=null )
         { <br>
          sb.append(" address:"+this.address+"<br>");<br>
         }<br>
         if(cardId != null )
         { <br>
          sb.append(" Card Id:"+this.cardId+"<br>");<br>
         } <br>
        return sb.toString();<br>
      }<br>
      
}<br>
package htc.faces;<br>


public class HospitalLocVO implements java.io.Serializable
{<br>

     private String state = "";<br>
     private String city = "";<br>
     private String area = "";<br>
     
     public HospitalLocVO(String state, String city, String area)
     {<br>
       this.state = state;<br>
       this.city = city;<br>
       this.area = area;<br>
      }<br>
      
      public HospitalLocVO()
      {<br>
            super();<br>
      }<br>
      
      public String getArea()
      {<br>
            return this.area;<br>
      }<br>
      
      public void setArea(String area)
      {<br>
            this.area = area;<br>
      }<br>
      
      public String getCity()
      {<br>
            return this.city;<br>
      }<br>
      
      public void setCity(String city)
      {<br>
            this.city = city;<br>
      }<br>
      
      public String getState()
      {<br>
            return this.state;<br>
      }<br>
      
      public void setState(String state)
      {<br>
            this.state = state;<br>
      }<br>

      public String toString()
      {<br>
       if(state.length()>0)<br>
       {<br>
          return this.state+"-"+this.city+"-"+this.area;<br>
       }<br>
       return "";<br>
      }<br>

}<br>

faces-config like<br>
<?xml version="1.0"?><br>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" version="1.2"><br>
<application><br>
    <message-bundle>messages</message-bundle><br>
   <locale-config>
     <default-locale>en</default-locale>
   </locale-config><br>
</application><br>

<converter><br>
    <converter-id>locChanger</converter-id><br>
    <converter-class>htc.faces.LocationConverter</converter-class><br>
</converter><br>

<managed-bean><br>
 <managed-bean-name>fhcMemberVar</managed-bean-name><br>
 <managed-bean-class>htc.faces.FHCMemberVO</managed-bean-class><br>
 <managed-bean-scope>session</managed-bean-scope><br>
</managed-bean><br>

<managed-bean><br>
 <managed-bean-name>hospitalLocVar</managed-bean-name><br>
 <managed-bean-class>htc.faces.HospitalLocVO</managed-bean-class><br>
 <managed-bean-scope>session</managed-bean-scope><br>
</managed-bean><br>

<managed-bean><br>
 <managed-bean-name>membersVar</managed-bean-name><br>
 <managed-bean-class>java.util.ArrayList</managed-bean-class><br>
 <managed-bean-scope>session</managed-bean-scope><br>
</managed-bean><br>


<managed-bean><br>
  <managed-bean-name>memberManip</managed-bean-name><br>
  <managed-bean-class>htc.faces.FHCMemberManip</managed-bean-class><br>
  <managed-bean-scope>session</managed-bean-scope><br>
  <managed-property><br>
   <property-name>member</property-name><br>
   <value-class>htc.faces.FHCMemberVO</value-class><br>
   <value>#{fhcMemberVar}</value><br>
  </managed-property><br>
  <managed-property><br>
   <property-name>location</property-name><br>
   <value-class>htc.faces.HospitalLocVO</value-class><br>
   <value>#{hospitalLocVar}</value><br>
  </managed-property><br>
  <managed-property><br>
   <property-name>members</property-name><br>
   <value-class>java.util.ArrayList</value-class><br>
   <value>#{membersVar}</value><br>
  </managed-property><br>

</managed-bean><br>

<navigation-rule><br>

 <from-view-id>/enroll.jsp</from-view-id> <br>
  <navigation-case><br>
      <from-action>#{memberManip.addMember}</from-action><br>
      <from-outcome>success</from-outcome><br>
     <to-view-id>/result.jsp</to-view-id> <br>
 </navigation-case><br>
  <navigation-case><br>
      <from-action>#{memberManip.reset}</from-action><br>
      <from-outcome>success</from-outcome><br>
     <to-view-id>/enroll.jsp</to-view-id> <br>
 </navigation-case><br>
 <navigation-case><br>
      <from-action>#{memberManip.getAllMembers}</from-action><br>
      <from-outcome>success</from-outcome><br>
     <to-view-id>/allMembers.jsp</to-view-id> <br>
 </navigation-case><br>

</navigation-rule><br>

<navigation-rule><br>
 <from-view-id>/result.jsp</from-view-id> <br>
  <navigation-case><br>
      <from-action>#{memberManip.getAllMembers}</from-action><br>
      <from-outcome>success</from-outcome><br>
     <to-view-id>/allMembers.jsp</to-view-id> <br>
 </navigation-case><br>
</navigation-rule><br>

 
 <validator><br>
      <validator-id>reqValidator</validator-id><br>
      <validator-class>htc.faces.MustValidator</validator-class><br>
 </validator> <br>

</faces-config><br>

when i am using the jsp allMembers.jsp it is giving an exception during translation of jsp<br>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %><br>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %><br>
<html><br>
 <body><br>
 <f:view><br>
 
  <h:form><br>

 [b][u]<h:dataTable id="allMembers"
       rendered="#{!empty(memberManip.members)}" var="member"
       value="#{memberManip.members}" [/u][/b]<br>

    <f:facet name="header"><br>
        <h:outputText value="Registered Members List" /><br>
    </f:facet> <br>
   
    <h:column><br>
     <f:facet name="header"><br>
       <h:outputText value="Security Number" /><br>
     </f:facet><br>
        <h:outputText value="#{member.securityNumber}" /><br>
   </h:column> <br>

   <h:column><br>
     <f:facet name="header"><br>
       <h:outputText value="Member Name" /><br>
     </f:facet> <br>
        <h:outputText value="#{member.name}" /><br>
   </h:column> <br>

   <h:column ><br>
     <f:facet name="header"><br>
       <h:outputText value="Profession" /><br>
    </f:facet> <br>
     <h:outputText value="#{member.occupation}" /><br>
  </h:column> <br>

  <h:column> <br>
    <f:facet name="header"><br>
       <h:outputText value="Cashless CardId" /><br>
    </f:facet> <br>
      <h:outputText value="#{member.cardId}" /><br>
  </h:column> <br>


  <h:column><br>
    <f:facet name="header"><br>
      <h:outputText value="Address" /><br>
    </f:facet> <br>
      <h:outputText value="#{member.address}" /><br>
  </h:column> <br>

  <h:column><br>
    <f:facet name="header"><br>
       <h:outputText value="Total Income" /><br>
    </f:facet> <br>
      <h:outputText value="#{member.totIncome}" /><br>
  </h:column><br>
   <f:facet name="footer"><br>
        <h:outputText value="From DTR Prasad" /><br>
   </f:facet> <br>
   </h:dataTable> <br>
 </h:form><br>

</f:view><br>
</body><br>
</html><br>

The error is:<br>

Unable to compile class for JSP: <br>

An error occurred at line: 9 in the jsp file: /allMembers.jsp
The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)<br>
6: <br>
7: <h:form><br>
8:
9: <h:dataTable id="allMembers" <br>
10: rendered="#{!empty(memberManip.members)}" var="member"<br>
11: value="#{memberManip.members}" ><br>
12: <br><br>
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        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:687)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:414)
        at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:455)
        at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:139)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:266)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        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:228)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
        at java.lang.Thread.run(Thread.java:595)
Mar 9, 2007 7:10:22 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 9 in the jsp file: /allMembers.jsp
The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)
6:
7: <h:form>
8:
9: <h:dataTable id="allMembers"
10: rendered="#{!empty(memberManip.members)}" var="member"
11: value="#{memberManip.members}" >
12:


Stacktrace:
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
        at org.apache.jasper.compiler.Compil


please look into this and provide help where the mistake is

email: rajendra32_at_yahoo.co.uk

Prasad DTR
[Message sent by forum member 'dtrprasad' (dtrprasad)]

http://forums.java.net/jive/thread.jspa?messageID=207030