[richfaces-issues] [JBoss JIRA] Updated: (RF-9444) ExtendedDataTable allows only EL expressions for property selection

Eloweyn G (JIRA) jira-events at lists.jboss.org
Fri Oct 8 04:06:39 EDT 2010


     [ https://jira.jboss.org/browse/RF-9444?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eloweyn G updated RF-9444:
--------------------------

    Description: 
I start the aplication (I have tested on two different Windows 2003 servers, tomcat 6.026 server and 2 different jre (jre1.5.0_12 and jre6 update 21). And in all cases, I get this error:

org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /pages/index.jsp en línea 37

34: 				
35: 		        <br>
36: 				<div align="center">
37: 					<rich:extendedDataTable
38: 						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
39: 						sortMode="#{mantGestBean.sortMode}"
40: 						selectionMode="#{mantGestBean.selectionMode}"


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


causa raíz 

java.lang.IllegalArgumentException: Component org.richfaces.ExtendedDataTable with Id table allows only EL expressions for property selection
	org.richfaces.taglib.ExtendedDataTableTag.setProperties(ExtendedDataTableTag.java:1464)
	javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:230)
	javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:486)
	javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:670)
	javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1142)
	org.apache.jsp.pages.index_jsp._jspx_meth_rich_005fextendedDataTable_005f0(index_jsp.java:302)
	org.apache.jsp.pages.index_jsp._jspx_meth_a4j_005fform_005f0(index_jsp.java:241)
	org.apache.jsp.pages.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:165)
	org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:125)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Here you have my index.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>

<html>

    <head>
        <title>MG</title>
		<link href="css/MG.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <f:view>
        	<a4j:form style="width:90%;align:center">
				<table style="width: 100%;" border="0">
					<col /> <col /> 
					<tbody>
						<tr>
							<td><img alt="AXA" src="img/logo_axa_2.gif" /></td>
							<td style="text-align: right; margin-left: auto; margin-right: 0pt;">
								<span style="font-family: Arial,Helvetica,sans-serif;">
								<span style="font-size: 8pt;">SE0200</span></span>
							</td>
						</tr>
					</tbody>
				</table>
				<h1>Siniestros Extranjeros - Mantenimiento de gestores</h1>
				<p>A continuación se muestra la lista de gestores de Siniestros Extranjeros.
					Por favor, marque los gestores presentes y pulse <em>Aceptar</em> para 
					confirmar los cambios. Si no desea grabar ningún cambio o si ya ha terminado y
					desea finalizar, pulse <em>Cancelar</em> para cerrar esta ventana.
				</p>
				
		        <br>
				<div align="center">
					<rich:extendedDataTable
						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
						sortMode="#{mantGestBean.sortMode}"
						selectionMode="#{mantGestBean.selectionMode}"
						selection="#{mantGestBean.selection}" align="center" height="200px" 
						width="50%">
			
						<rich:column sortable="true" label="Usuario"
							filterBy="#{listaGestVar.nombre}" filterEvent="onkeyup"
							sortBy="#{listaGestVar.nombre}" width="85%">
			
							<f:facet name="header">
								<h:outputText value="Usuario" />
							</f:facet>
							<h:outputText value="#{listaGestVar.nombre}" />
			
			
						</rich:column>
			
						<rich:column label="Presente" width="15%">
							<f:facet name="header">
								<h:outputText value="Presente" />
							</f:facet>
							<h:selectBooleanCheckbox id="checkEntry"
								value="#{listaGestVar.presente}" />
						</rich:column>
					</rich:extendedDataTable> 
					<h:panelGrid columns="2" style="align:right">
						<a4j:commandButton value="Aceptar" style="align:right"
							action="#{mantGestBean.update}"
							oncomplete="Richfaces.showModalPanel('Panel')" reRender="panel" />
						<a4j:commandButton value="Cancelar" onclick="window.close()"
							style="align:right" />
					</h:panelGrid>
				</div>
				<p>
    			<span class="a_link" onclick="Richfaces.showModalPanel('PanelActualizaGest')">Actualizar lista gestores. </span> Actualiza la lista de gestores. 
    			   Incorpora a la lista de gestores, marcándolos como presentes, 
    			   todos los usuarios que se hayan añadido al grupo de gestores de apertura. 
    			   Elimina usuarios que se hayan quitado del grupo de gestores de apertura y 
    			   redistribuye sus tareas entre los restantes gestores que están presentes.</p>
			</a4j:form>
	
			<rich:modalPanel id="panel" width="350" height="75">
				<f:facet name="header">
					<h:panelGroup>
						<h:outputText value="Información"></h:outputText>
					</h:panelGroup>
				</f:facet>
				<f:facet name="controls">
					<h:panelGroup>
						<h:graphicImage value="/img/close.png"
							styleClass="hidelink" id="hidelink" />
						<rich:componentControl for="panel" attachTo="hidelink"
							operation="hide" event="onclick" />
					</h:panelGroup>
				</f:facet>
				<h:outputText
					value="#{mantGestBean.sMensaje}"></h:outputText>
			</rich:modalPanel>
			
			<rich:modalPanel id="panelActualizaGest" width="400" height="100">
				<f:facet name="header">
					<h:panelGroup>
						<h:outputText value="Atención"></h:outputText>
					</h:panelGroup>
				</f:facet>
				<f:facet name="controls">
					<h:panelGroup>
						 <h:graphicImage value="/img/close.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
					</h:panelGroup>
				</f:facet>
				<h:outputText
					value="Se va a proceder a la actualización de la lista de gestores. Desea continuar?"></h:outputText>
				 <a4j:form>
				 	<table style="width: 100%;">
				 		<tr>
				 		<td >
				 		<div align="center" >
				 			<a4j:commandButton value="   Sí   " action="#{cargaBean.actualizarGestores}" onclick="Richfaces.hideModalPanel('panelActualizaGest')" oncomplete='window.location=\"./pages/carga.jsf\"' />
							&nbsp;
							<a4j:commandButton value="   No   " onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
				 		</div>
				 		</td>
				 		</tr>
				 	</table>
				 	
				 </a4j:form>

					
			</rich:modalPanel>
		
		</f:view>
		    
			
    </body> 

</html>

and this is the MantGestBean class:

package es.axa.mgSE.beans;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.richfaces.model.selection.SimpleSelection;

import es.axa.SE.filenet.tasks.TaskSEManager;
import es.axa.mgSE.hibernate.HibernateUtil;
import es.axa.mgSE.objects.Gestor;
import es.axa.mgSE.objects.ListaGestores;


public class MantGestBean {
	private List <Gestor> lGest;
	private String sortMode="single";
	private String selectionMode="multi";
	private SimpleSelection selection = new SimpleSelection();
	private String sMensaje="";

	private static final Log log = LogFactory.getLog(MantGestBean.class);
	
	public List <Gestor> getlGest() throws Exception {
		try {
			ListaGestores lgestObj=new ListaGestores();
			lGest=lgestObj.getListGestores();
			HibernateUtil.closeSession();
			return lGest;
			
		}catch (Exception e){
			HibernateUtil.closeSession();
			throw e;
		}
		
	}

	public void setlGest(List <Gestor> lGest) {
		this.lGest = lGest;
	}

	public String getSortMode() {
		return sortMode;
	}

	public void setSortMode(String sortMode) {
		this.sortMode = sortMode;
	}

	public String getSelectionMode() {
		return selectionMode;
	}

	public void setSelectionMode(String selectionMode) {
		this.selectionMode = selectionMode;
	}

	public SimpleSelection getSelection() {
		return selection;
	}
	
	public void setSelection(SimpleSelection selection) {
		this.selection = selection;
	}
	
	public void takeSelection(){
		System.out.println("Selección");
	}
	
	public String getsMensaje() {
		return sMensaje;
	}

	public void setsMensaje(String sMensaje) {
		this.sMensaje = sMensaje;
	}

	public void update()throws Exception {
		try{
			if (!lGest.isEmpty()) {
				log.debug("update - Iniciando update");
				
				ListaGestores lgestObj=new ListaGestores();
				
				// Obtener la lista tal y como está antes de actualizar
				List<Gestor> listaOldGest = lgestObj.getListGestores();
				
				// Actualizamos la lista con los valores introducidos por el usuario
				lgestObj.updateListGestores(lGest);
				
				// Construir la lista de gestores que pasan de activo a inactivo
				List<Gestor> gestCambiados = new ArrayList<Gestor>();
				for( int i = 0; i < listaOldGest.size(); i++) {
					if (!lGest.get(i).isPresente() && listaOldGest.get(i).isPresente()) {
						gestCambiados.add(lGest.get(i));
					}
				}
				
				//Ahora tenemos que pasar las tareas activas de los usuarios cambiados
				//a otros usuarios que estén presentes
				if (!gestCambiados.isEmpty()){
					TaskSEManager taskManager=new TaskSEManager();
					taskManager.traspasoTareasActivas(gestCambiados);
				}
					
				
				this.setsMensaje("La base de datos se ha actualizado correctamente");
				log.debug("update - Finalizando update");
			}else {
				this.setsMensaje("No hay ningún elemento en la tabla");
			}
			
		}catch (Exception e){
			throw e;
		}finally {
			HibernateUtil.closeSession();
		}
	}
	
}

thank you very much

  was:
when I start the aplication (I have tested on two different Windows 2003 servers) I get this error:

org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /pages/index.jsp en línea 37

34: 				
35: 		        <br>
36: 				<div align="center">
37: 					<rich:extendedDataTable
38: 						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
39: 						sortMode="#{mantGestBean.sortMode}"
40: 						selectionMode="#{mantGestBean.selectionMode}"


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


causa raíz 

java.lang.IllegalArgumentException: Component org.richfaces.ExtendedDataTable with Id table allows only EL expressions for property selection
	org.richfaces.taglib.ExtendedDataTableTag.setProperties(ExtendedDataTableTag.java:1464)
	javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:230)
	javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:486)
	javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:670)
	javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1142)
	org.apache.jsp.pages.index_jsp._jspx_meth_rich_005fextendedDataTable_005f0(index_jsp.java:302)
	org.apache.jsp.pages.index_jsp._jspx_meth_a4j_005fform_005f0(index_jsp.java:241)
	org.apache.jsp.pages.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:165)
	org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:125)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


Here you have my index.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>

<html>

    <head>
        <title>MG</title>
		<link href="css/MG.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
        <f:view>
        	<a4j:form style="width:90%;align:center">
				<table style="width: 100%;" border="0">
					<col /> <col /> 
					<tbody>
						<tr>
							<td><img alt="AXA" src="img/logo_axa_2.gif" /></td>
							<td style="text-align: right; margin-left: auto; margin-right: 0pt;">
								<span style="font-family: Arial,Helvetica,sans-serif;">
								<span style="font-size: 8pt;">SE0200</span></span>
							</td>
						</tr>
					</tbody>
				</table>
				<h1>Siniestros Extranjeros - Mantenimiento de gestores</h1>
				<p>A continuación se muestra la lista de gestores de Siniestros Extranjeros.
					Por favor, marque los gestores presentes y pulse <em>Aceptar</em> para 
					confirmar los cambios. Si no desea grabar ningún cambio o si ya ha terminado y
					desea finalizar, pulse <em>Cancelar</em> para cerrar esta ventana.
				</p>
				
		        <br>
				<div align="center">
					<rich:extendedDataTable
						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
						sortMode="#{mantGestBean.sortMode}"
						selectionMode="#{mantGestBean.selectionMode}"
						selection="#{mantGestBean.selection}" align="center" height="200px" 
						width="50%">
			
						<rich:column sortable="true" label="Usuario"
							filterBy="#{listaGestVar.nombre}" filterEvent="onkeyup"
							sortBy="#{listaGestVar.nombre}" width="85%">
			
							<f:facet name="header">
								<h:outputText value="Usuario" />
							</f:facet>
							<h:outputText value="#{listaGestVar.nombre}" />
			
			
						</rich:column>
			
						<rich:column label="Presente" width="15%">
							<f:facet name="header">
								<h:outputText value="Presente" />
							</f:facet>
							<h:selectBooleanCheckbox id="checkEntry"
								value="#{listaGestVar.presente}" />
						</rich:column>
					</rich:extendedDataTable> 
					<h:panelGrid columns="2" style="align:right">
						<a4j:commandButton value="Aceptar" style="align:right"
							action="#{mantGestBean.update}"
							oncomplete="Richfaces.showModalPanel('Panel')" reRender="panel" />
						<a4j:commandButton value="Cancelar" onclick="window.close()"
							style="align:right" />
					</h:panelGrid>
				</div>
				<p>
    			<span class="a_link" onclick="Richfaces.showModalPanel('PanelActualizaGest')">Actualizar lista gestores. </span> Actualiza la lista de gestores. 
    			   Incorpora a la lista de gestores, marcándolos como presentes, 
    			   todos los usuarios que se hayan añadido al grupo de gestores de apertura. 
    			   Elimina usuarios que se hayan quitado del grupo de gestores de apertura y 
    			   redistribuye sus tareas entre los restantes gestores que están presentes.</p>
			</a4j:form>
	
			<rich:modalPanel id="panel" width="350" height="75">
				<f:facet name="header">
					<h:panelGroup>
						<h:outputText value="Información"></h:outputText>
					</h:panelGroup>
				</f:facet>
				<f:facet name="controls">
					<h:panelGroup>
						<h:graphicImage value="/img/close.png"
							styleClass="hidelink" id="hidelink" />
						<rich:componentControl for="panel" attachTo="hidelink"
							operation="hide" event="onclick" />
					</h:panelGroup>
				</f:facet>
				<h:outputText
					value="#{mantGestBean.sMensaje}"></h:outputText>
			</rich:modalPanel>
			
			<rich:modalPanel id="panelActualizaGest" width="400" height="100">
				<f:facet name="header">
					<h:panelGroup>
						<h:outputText value="Atención"></h:outputText>
					</h:panelGroup>
				</f:facet>
				<f:facet name="controls">
					<h:panelGroup>
						 <h:graphicImage value="/img/close.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
					</h:panelGroup>
				</f:facet>
				<h:outputText
					value="Se va a proceder a la actualización de la lista de gestores. Desea continuar?"></h:outputText>
				 <a4j:form>
				 	<table style="width: 100%;">
				 		<tr>
				 		<td >
				 		<div align="center" >
				 			<a4j:commandButton value="   Sí   " action="#{cargaBean.actualizarGestores}" onclick="Richfaces.hideModalPanel('panelActualizaGest')" oncomplete='window.location=\"./pages/carga.jsf\"' />
							&nbsp;
							<a4j:commandButton value="   No   " onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
				 		</div>
				 		</td>
				 		</tr>
				 	</table>
				 	
				 </a4j:form>

					
			</rich:modalPanel>
		
		</f:view>
		    
			
    </body> 

</html>

and this is the MantGestBean class:

package es.axa.mgSE.beans;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.richfaces.model.selection.SimpleSelection;

import es.axa.SE.filenet.tasks.TaskSEManager;
import es.axa.mgSE.hibernate.HibernateUtil;
import es.axa.mgSE.objects.Gestor;
import es.axa.mgSE.objects.ListaGestores;


public class MantGestBean {
	private List <Gestor> lGest;
	private String sortMode="single";
	private String selectionMode="multi";
	private SimpleSelection selection = new SimpleSelection();
	private String sMensaje="";

	private static final Log log = LogFactory.getLog(MantGestBean.class);
	
	public List <Gestor> getlGest() throws Exception {
		try {
			ListaGestores lgestObj=new ListaGestores();
			lGest=lgestObj.getListGestores();
			HibernateUtil.closeSession();
			return lGest;
			
		}catch (Exception e){
			HibernateUtil.closeSession();
			throw e;
		}
		
	}

	public void setlGest(List <Gestor> lGest) {
		this.lGest = lGest;
	}

	public String getSortMode() {
		return sortMode;
	}

	public void setSortMode(String sortMode) {
		this.sortMode = sortMode;
	}

	public String getSelectionMode() {
		return selectionMode;
	}

	public void setSelectionMode(String selectionMode) {
		this.selectionMode = selectionMode;
	}

	public SimpleSelection getSelection() {
		return selection;
	}
	
	public void setSelection(SimpleSelection selection) {
		this.selection = selection;
	}
	
	public void takeSelection(){
		System.out.println("Selección");
	}
	
	public String getsMensaje() {
		return sMensaje;
	}

	public void setsMensaje(String sMensaje) {
		this.sMensaje = sMensaje;
	}

	public void update()throws Exception {
		try{
			if (!lGest.isEmpty()) {
				log.debug("update - Iniciando update");
				
				ListaGestores lgestObj=new ListaGestores();
				
				// Obtener la lista tal y como está antes de actualizar
				List<Gestor> listaOldGest = lgestObj.getListGestores();
				
				// Actualizamos la lista con los valores introducidos por el usuario
				lgestObj.updateListGestores(lGest);
				
				// Construir la lista de gestores que pasan de activo a inactivo
				List<Gestor> gestCambiados = new ArrayList<Gestor>();
				for( int i = 0; i < listaOldGest.size(); i++) {
					if (!lGest.get(i).isPresente() && listaOldGest.get(i).isPresente()) {
						gestCambiados.add(lGest.get(i));
					}
				}
				
				//Ahora tenemos que pasar las tareas activas de los usuarios cambiados
				//a otros usuarios que estén presentes
				if (!gestCambiados.isEmpty()){
					TaskSEManager taskManager=new TaskSEManager();
					taskManager.traspasoTareasActivas(gestCambiados);
				}
					
				
				this.setsMensaje("La base de datos se ha actualizado correctamente");
				log.debug("update - Finalizando update");
			}else {
				this.setsMensaje("No hay ningún elemento en la tabla");
			}
			
		}catch (Exception e){
			throw e;
		}finally {
			HibernateUtil.closeSession();
		}
	}
	
}

thank you very much



> ExtendedDataTable allows only EL expressions for property selection
> -------------------------------------------------------------------
>
>                 Key: RF-9444
>                 URL: https://jira.jboss.org/browse/RF-9444
>             Project: RichFaces
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: component-ScrollableDataTable
>    Affects Versions: 3.3.3.Final
>         Environment: Windows 2003 server
> Apache Tomcat 6.0.26 Server 
> Java 1.5
> Richfaces 3.3.3 final
> Java jre1.5.0_12 (I've tested with jre6 update 21 too)
>            Reporter: Eloweyn G
>            Priority: Blocker
>         Attachments: MantGestSE.zip, MantGestSEHib.zip
>
>
> I start the aplication (I have tested on two different Windows 2003 servers, tomcat 6.026 server and 2 different jre (jre1.5.0_12 and jre6 update 21). And in all cases, I get this error:
> org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /pages/index.jsp en línea 37
> 34: 				
> 35: 		        <br>
> 36: 				<div align="center">
> 37: 					<rich:extendedDataTable
> 38: 						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
> 39: 						sortMode="#{mantGestBean.sortMode}"
> 40: 						selectionMode="#{mantGestBean.selectionMode}"
> Stacktrace:
> 	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
> 	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
> 	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
> 	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
> 	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
> 	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
> 	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
> 	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
> 	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
> 	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
> 	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
> 	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
> 	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
> 	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
> 	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
> 	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> causa raíz 
> java.lang.IllegalArgumentException: Component org.richfaces.ExtendedDataTable with Id table allows only EL expressions for property selection
> 	org.richfaces.taglib.ExtendedDataTableTag.setProperties(ExtendedDataTableTag.java:1464)
> 	javax.faces.webapp.UIComponentELTag.createComponent(UIComponentELTag.java:230)
> 	javax.faces.webapp.UIComponentClassicTagBase.createChild(UIComponentClassicTagBase.java:486)
> 	javax.faces.webapp.UIComponentClassicTagBase.findComponent(UIComponentClassicTagBase.java:670)
> 	javax.faces.webapp.UIComponentClassicTagBase.doStartTag(UIComponentClassicTagBase.java:1142)
> 	org.apache.jsp.pages.index_jsp._jspx_meth_rich_005fextendedDataTable_005f0(index_jsp.java:302)
> 	org.apache.jsp.pages.index_jsp._jspx_meth_a4j_005fform_005f0(index_jsp.java:241)
> 	org.apache.jsp.pages.index_jsp._jspx_meth_f_005fview_005f0(index_jsp.java:165)
> 	org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:125)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
> 	com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
> 	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
> 	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
> 	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
> 	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
> 	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
> 	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
> 	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
> 	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
> 	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:206)
> 	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
> 	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
> 	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
> 	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706)
> 	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677)
> 	org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
> 	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
> 	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
> 	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
> 	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> Here you have my index.jsp
> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
> <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
> <html>
>     <head>
>         <title>MG</title>
> 		<link href="css/MG.css" rel="stylesheet" type="text/css" />
>     </head>
>     <body>
>         <f:view>
>         	<a4j:form style="width:90%;align:center">
> 				<table style="width: 100%;" border="0">
> 					<col /> <col /> 
> 					<tbody>
> 						<tr>
> 							<td><img alt="AXA" src="img/logo_axa_2.gif" /></td>
> 							<td style="text-align: right; margin-left: auto; margin-right: 0pt;">
> 								<span style="font-family: Arial,Helvetica,sans-serif;">
> 								<span style="font-size: 8pt;">SE0200</span></span>
> 							</td>
> 						</tr>
> 					</tbody>
> 				</table>
> 				<h1>Siniestros Extranjeros - Mantenimiento de gestores</h1>
> 				<p>A continuación se muestra la lista de gestores de Siniestros Extranjeros.
> 					Por favor, marque los gestores presentes y pulse <em>Aceptar</em> para 
> 					confirmar los cambios. Si no desea grabar ningún cambio o si ya ha terminado y
> 					desea finalizar, pulse <em>Cancelar</em> para cerrar esta ventana.
> 				</p>
> 				
> 		        <br>
> 				<div align="center">
> 					<rich:extendedDataTable
> 						value="#{mantGestBean.lGest}" var="listaGestVar" id="table"
> 						sortMode="#{mantGestBean.sortMode}"
> 						selectionMode="#{mantGestBean.selectionMode}"
> 						selection="#{mantGestBean.selection}" align="center" height="200px" 
> 						width="50%">
> 			
> 						<rich:column sortable="true" label="Usuario"
> 							filterBy="#{listaGestVar.nombre}" filterEvent="onkeyup"
> 							sortBy="#{listaGestVar.nombre}" width="85%">
> 			
> 							<f:facet name="header">
> 								<h:outputText value="Usuario" />
> 							</f:facet>
> 							<h:outputText value="#{listaGestVar.nombre}" />
> 			
> 			
> 						</rich:column>
> 			
> 						<rich:column label="Presente" width="15%">
> 							<f:facet name="header">
> 								<h:outputText value="Presente" />
> 							</f:facet>
> 							<h:selectBooleanCheckbox id="checkEntry"
> 								value="#{listaGestVar.presente}" />
> 						</rich:column>
> 					</rich:extendedDataTable> 
> 					<h:panelGrid columns="2" style="align:right">
> 						<a4j:commandButton value="Aceptar" style="align:right"
> 							action="#{mantGestBean.update}"
> 							oncomplete="Richfaces.showModalPanel('Panel')" reRender="panel" />
> 						<a4j:commandButton value="Cancelar" onclick="window.close()"
> 							style="align:right" />
> 					</h:panelGrid>
> 				</div>
> 				<p>
>     			<span class="a_link" onclick="Richfaces.showModalPanel('PanelActualizaGest')">Actualizar lista gestores. </span> Actualiza la lista de gestores. 
>     			   Incorpora a la lista de gestores, marcándolos como presentes, 
>     			   todos los usuarios que se hayan añadido al grupo de gestores de apertura. 
>     			   Elimina usuarios que se hayan quitado del grupo de gestores de apertura y 
>     			   redistribuye sus tareas entre los restantes gestores que están presentes.</p>
> 			</a4j:form>
> 	
> 			<rich:modalPanel id="panel" width="350" height="75">
> 				<f:facet name="header">
> 					<h:panelGroup>
> 						<h:outputText value="Información"></h:outputText>
> 					</h:panelGroup>
> 				</f:facet>
> 				<f:facet name="controls">
> 					<h:panelGroup>
> 						<h:graphicImage value="/img/close.png"
> 							styleClass="hidelink" id="hidelink" />
> 						<rich:componentControl for="panel" attachTo="hidelink"
> 							operation="hide" event="onclick" />
> 					</h:panelGroup>
> 				</f:facet>
> 				<h:outputText
> 					value="#{mantGestBean.sMensaje}"></h:outputText>
> 			</rich:modalPanel>
> 			
> 			<rich:modalPanel id="panelActualizaGest" width="400" height="100">
> 				<f:facet name="header">
> 					<h:panelGroup>
> 						<h:outputText value="Atención"></h:outputText>
> 					</h:panelGroup>
> 				</f:facet>
> 				<f:facet name="controls">
> 					<h:panelGroup>
> 						 <h:graphicImage value="/img/close.png" style="cursor:pointer" onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
> 					</h:panelGroup>
> 				</f:facet>
> 				<h:outputText
> 					value="Se va a proceder a la actualización de la lista de gestores. Desea continuar?"></h:outputText>
> 				 <a4j:form>
> 				 	<table style="width: 100%;">
> 				 		<tr>
> 				 		<td >
> 				 		<div align="center" >
> 				 			<a4j:commandButton value="   Sí   " action="#{cargaBean.actualizarGestores}" onclick="Richfaces.hideModalPanel('panelActualizaGest')" oncomplete='window.location=\"./pages/carga.jsf\"' />
> 							&nbsp;
> 							<a4j:commandButton value="   No   " onclick="Richfaces.hideModalPanel('panelActualizaGest')" />
> 				 		</div>
> 				 		</td>
> 				 		</tr>
> 				 	</table>
> 				 	
> 				 </a4j:form>
> 					
> 			</rich:modalPanel>
> 		
> 		</f:view>
> 		    
> 			
>     </body> 
> </html>
> and this is the MantGestBean class:
> package es.axa.mgSE.beans;
> import java.util.ArrayList;
> import java.util.List;
> import org.apache.commons.logging.Log;
> import org.apache.commons.logging.LogFactory;
> import org.richfaces.model.selection.SimpleSelection;
> import es.axa.SE.filenet.tasks.TaskSEManager;
> import es.axa.mgSE.hibernate.HibernateUtil;
> import es.axa.mgSE.objects.Gestor;
> import es.axa.mgSE.objects.ListaGestores;
> public class MantGestBean {
> 	private List <Gestor> lGest;
> 	private String sortMode="single";
> 	private String selectionMode="multi";
> 	private SimpleSelection selection = new SimpleSelection();
> 	private String sMensaje="";
> 	private static final Log log = LogFactory.getLog(MantGestBean.class);
> 	
> 	public List <Gestor> getlGest() throws Exception {
> 		try {
> 			ListaGestores lgestObj=new ListaGestores();
> 			lGest=lgestObj.getListGestores();
> 			HibernateUtil.closeSession();
> 			return lGest;
> 			
> 		}catch (Exception e){
> 			HibernateUtil.closeSession();
> 			throw e;
> 		}
> 		
> 	}
> 	public void setlGest(List <Gestor> lGest) {
> 		this.lGest = lGest;
> 	}
> 	public String getSortMode() {
> 		return sortMode;
> 	}
> 	public void setSortMode(String sortMode) {
> 		this.sortMode = sortMode;
> 	}
> 	public String getSelectionMode() {
> 		return selectionMode;
> 	}
> 	public void setSelectionMode(String selectionMode) {
> 		this.selectionMode = selectionMode;
> 	}
> 	public SimpleSelection getSelection() {
> 		return selection;
> 	}
> 	
> 	public void setSelection(SimpleSelection selection) {
> 		this.selection = selection;
> 	}
> 	
> 	public void takeSelection(){
> 		System.out.println("Selección");
> 	}
> 	
> 	public String getsMensaje() {
> 		return sMensaje;
> 	}
> 	public void setsMensaje(String sMensaje) {
> 		this.sMensaje = sMensaje;
> 	}
> 	public void update()throws Exception {
> 		try{
> 			if (!lGest.isEmpty()) {
> 				log.debug("update - Iniciando update");
> 				
> 				ListaGestores lgestObj=new ListaGestores();
> 				
> 				// Obtener la lista tal y como está antes de actualizar
> 				List<Gestor> listaOldGest = lgestObj.getListGestores();
> 				
> 				// Actualizamos la lista con los valores introducidos por el usuario
> 				lgestObj.updateListGestores(lGest);
> 				
> 				// Construir la lista de gestores que pasan de activo a inactivo
> 				List<Gestor> gestCambiados = new ArrayList<Gestor>();
> 				for( int i = 0; i < listaOldGest.size(); i++) {
> 					if (!lGest.get(i).isPresente() && listaOldGest.get(i).isPresente()) {
> 						gestCambiados.add(lGest.get(i));
> 					}
> 				}
> 				
> 				//Ahora tenemos que pasar las tareas activas de los usuarios cambiados
> 				//a otros usuarios que estén presentes
> 				if (!gestCambiados.isEmpty()){
> 					TaskSEManager taskManager=new TaskSEManager();
> 					taskManager.traspasoTareasActivas(gestCambiados);
> 				}
> 					
> 				
> 				this.setsMensaje("La base de datos se ha actualizado correctamente");
> 				log.debug("update - Finalizando update");
> 			}else {
> 				this.setsMensaje("No hay ningún elemento en la tabla");
> 			}
> 			
> 		}catch (Exception e){
> 			throw e;
> 		}finally {
> 			HibernateUtil.closeSession();
> 		}
> 	}
> 	
> }
> thank you very much

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the richfaces-issues mailing list