Pregunta

Recientemente comencé a usar la biblioteca DisplayTag y me he encontrado con un problema.

Estoy tratando de crear una columna que permita al usuario vincular a otra página si esa otra página realmente tendrá algo que mostrar. Lo tengo configurado para que siempre haya un hipervínculo allí, pero tengo problemas con el condicional. Tengo una configuración variable que estará vacía o algo más (generalmente éxito). Esto es lo que he probado hasta ahora ...

<display:table uid="log" pagesize="20" defaultsort="2" name="logs" class="displayTag" sort="list" requestURI="savedReports.action" >  
                <display:column property="reportName" titleKey="label.report" <%if(!((ReportLog)pageContext.getAttribute("log")).getStatus().equals("empty")){ %>href="pdfReportViewer.action" paramId="reportLogId" paramProperty="id" <%} %> sortable="true" headerClass="sortable"></display:column>

Este método intenta usar JSP en el medio de la etiqueta Display: Column, y termino obteniendo una pantalla no terminada: Error de la etiqueta de columna.

A continuación intenté esto ...

<display:table uid="log" pagesize="20" defaultsort="2" name="logs" class="displayTag" sort="list" requestURI="savedReports.action" >  
                <%if(((ReportLog)pageContext.getAttribute("log")).getStatus().equals("empty")){ %>         
                    <display:column property="reportName" titleKey="label.report" sortable="true" headerClass="sortable"/>   
                <%}else{ %>
                    <display:column property="reportName" titleKey="label.report" href="pdfReportViewer.action" paramId="reportLogId" paramProperty="id" sortable="true" headerClass="sortable"/>
                <%}%>  

Esto no arrojó ningún error, pero cada línea se incorporó a la columna Hyperlink. Probé para ver si esto era un error en mi condicional, pero por desgracia no, creando una columna ficticia y mostrando el resultado del condicional, y obtengo una hermosa variedad de trues y falsos.

Estoy perdido por qué el segundo método no funciona, así que espero que alguien aquí tenga una mejor experiencia con Displaytags.

¡Gracias!

¿Fue útil?

Solución 2

Terminé haciéndolo con un pequeño JSP ... Código a continuación ...

<display:column titleKey="label.view" sortable="false" headerClass="sortable">
    <%if(!((ReportLog)pageContext.getAttribute("log")).getStatus().equals("empty")){ %>
    <a href="pdfReportViewer.action?reportLogId<%=((ReportLog)pageContext.getAttribute("log")).getId()%>">View</a>
    <%} %>
</display:column>

Otros consejos

Un poco feo, desde la parte superior de mi cabeza:

<display:column property="reportName" titleKey="label.report" 
    href="${log.status != 'empty' ? pdfReportViewer.action : null}"
    paramId="${log.status != 'empty' ? reportLogId : null}"
    paramProperty="${log.status != 'empty' ? 'id' : null}"
    sortable="true" headerClass="sortable"></display:column>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top