Frage

Ich habe kürzlich die DisplayTag -Bibliothek verwendet und bin auf ein Problem gestoßen.

Ich versuche, eine Spalte zu erstellen, in der der Benutzer zu einer anderen Seite verlinkt wird, wenn diese andere Seite tatsächlich etwas zu zeigen hat. Ich habe es eingerichtet, dass es dort immer einen Hyperlink gibt, aber ich habe Probleme mit der Bedingung. Ich habe eine variable Setup, die entweder leer oder etwas anderes ist (normalerweise Erfolg). Das habe ich bisher versucht ...

<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>

Diese Methode versucht, JSP in der Mitte des Displays: Spalten -Tags zu verwenden, und am Ende erhalte ich ein nicht entleverter Display: Spalten -Tag -Fehler.

Als nächstes habe ich es ausprobiert ...

<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"/>
                <%}%>  

Dies warf keine Fehler, aber jede Zeile stand in der Hyperlink -Spalte. Ich habe getestet, ob dies ein Fehler in meinem bedingten war, aber leider war es nicht, eine Dummy -Säule zu erstellen und das Ergebnis der Bedingung anzuzeigen, und ich bekomme eine schöne Auswahl an TRUUE und FALSES.

Ich bin ratlos, warum die zweite Methode nicht funktioniert, also hoffe ich, dass jemand hier bessere Erfahrungen mit DisplayTags hat!

Vielen Dank!

War es hilfreich?

Lösung 2

Am Ende habe ich es mit einem kleinen JSP ... Code unten gemacht ...

<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>

Andere Tipps

Ein bisschen hässlich, von der Spitze meines Kopfes:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top