Domanda

Recentemente ho iniziato ad usare la libreria DisplayTag e ho incontrato un problema.

Sto cercando di creare una colonna che permetterà all'utente di creare un collegamento a un'altra pagina se questa altra pagina effettivamente avere qualcosa da visualizzare. Ce l'ho messa a punto in modo che ci sia sempre un collegamento ipertestuale lì, ma sto avendo problemi con la condizionale. Ho una configurazione variabile che sia vuoto o qualcosa d'altro (di solito il successo). Questo è quello che ho provato finora ...

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

Questo metodo tenta di utilizzare jsp nel centro del display: tag della colonna, e ho finiscono per ottenere una visualizzazione non terminato. Errore di tag colonna

Poi ho provato questo ...

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

Questa non gettare eventuali errori, ma ogni linea di default alla colonna di collegamento ipertestuale. Ho provato a vedere se questo è stato un errore nel mio condizionale, ma purtroppo non è stato, la creazione di una colonna fittizia e visualizzazione del risultato del condizionale, ed ottengo un bel assortimento di veri e falsi.

Sono in perdita per spiegare perché il secondo metodo non funziona così sto sperando che qualcuno qui ha qualche migliore esperienza con displaytags!

Grazie!

È stato utile?

Soluzione 2

ho finito per fare con un po 'jsp ... codice qui sotto ...

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

Altri suggerimenti

Un po 'brutto, dalla parte superiore della mia testa:

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top