olá galera,
ao tentar o padrão decorator em uma paginação com displaytag para criação de links me deparei com o seguinte erro:
Exception: [.DefaultDecoratorFactory] Unable to load br.cefetce.lar.invente.CheckWrapper due to a java.lang.ClassCastException exception Cause: br.cefetce.lar.invente.CheckWrapper
at org.displaytag.decorator.DefaultDecoratorFactory.loadColumnDecorator(DefaultDecoratorFactory.java:157)
at org.displaytag.tags.ColumnTag.addHeaderToTable(ColumnTag.java:705)
at org.displaytag.tags.ColumnTag.doEndTag(ColumnTag.java:622)
at org.apache.jsp.jsp.enredo.ingles.ResultsSearch2_jsp._jspx_meth_display_column_1(ResultsSearch2_jsp.java:366)
at org.apache.jsp.jsp.enredo.ingles.ResultsSearch2_jsp._jspx_meth_display_table_0(ResultsSearch2_jsp.java:289)
at org.apache.jsp.jsp.enredo.ingles.ResultsSearch2_jsp._jspService(ResultsSearch2_jsp.java:241)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at br.cefetce.lar.invente.RootSearchEnredo.doPost(RootSearchEnredo.java:112)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassCastException: br.cefetce.lar.invente.CheckWrapper
... 35 more
esse é o meu JSP:
<%@page import="br.cefetce.lar.invente.*" %>
<%@page import="java.util.*" %>
<%@page errorPage="error.jsp" %>
<%@taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@include file="FormSearchEnredo2.jsp" %>
<%
Vector vetor = (Vector) session.getAttribute("vetor");
//session.putValue("vetor", vetor);
session.setAttribute("vetor", vetor);
//request.setAttribute("vetor",vetor);
System.out.println(vetor);
%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../css/displaytagex.css">
<!-- <link href="images/css/formulario.css" type="text/css" rel="stylesheet" />
<link href="images/css/grid.css" type="text/css" rel="stylesheet" /> href="ResultDetail.jsp" -->
</head>
<body background="../../_themes/romtextb.jpg" bgcolor="#cccccc">
<font color=red>
<div id ="grid" align=center>
<display:table name="${vetor}" style="width: 100%; border: 0px" pagesize="5" export="true">
<display:column property="id" title="Id" />
<display:column property="title" title="Título" style="width:200px" decorator = "br.cefetce.lar.invente.CheckWrapper"/>
<display:column property="author" title="Autor" style="width:250px" />
<display:column property="institution" title="Institutição" />
<display:column property="provisionDate" title="Provision Date" style= "width: 100px" />
<display:column property="learningObjectType" title="Tipo de Objeto Educacional" />
<display:setProperty name="export.pdf" value="true"/>
</display:table>
</font>
</body>
</html>
e esse o decorator:
package br.cefetce.lar.invente;
import javax.servlet.jsp.PageContext;
import org.displaytag.decorator.DisplaytagColumnDecorator;
import org.displaytag.decorator.TableDecorator;
import org.displaytag.exception.DecoratorException;
import org.displaytag.properties.MediaTypeEnum;
import br.cefetce.lar.invente.*;
public class CheckWrapper extends TableDecorator {
public String decorate(Object coluna) throws DecoratorException {
return "<FORM name='submitForm' method='post' action='http://localhost:8080/enredo1.1.3/RootSearchEnredo'>" +
"<input type='hidden' name='submitForm' value='"+((FormResultBean)getCurrentRowObject()).getId()+"'checked/><>"+
"<a href='#'>"+ ((FormResultBean)getCurrentRowObject()).getAuthor()+"</a><a href='#' ></a>"+
"<INPUT type='submit' checked='checked'>";
}
}
conto com ajuda de todos…
flw