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
Reporter: Eloweyn G
Priority: Blocker
when I start the aplication 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\"' />
<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
_______________________________________________
richfaces-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/richfaces-issues