Question

J'ai récemment commencé à utiliser la bibliothèque displaytag et j'ai rencontré un problème.

Je suis en train de créer une colonne qui permettra à l'utilisateur de créer un lien vers une autre page si cette autre page sera effectivement quelque chose à afficher. Je l'ai configuration pour qu'il y ait toujours un lien hypertexte là-bas, mais je vais avoir du mal avec le conditionnel. J'ai une configuration variable qui soit vide ou autre chose (habituellement de succès). Voilà ce que je l'ai essayé jusqu'à présent ...

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

Cette méthode tente d'utiliser jsp au milieu de l'écran: balise de colonne, et je finis par obtenir un affichage non terminé:. Colonne erreur de balise

Ensuite, j'essayé ceci ...

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

Cela ne jette aucune erreur, mais chaque ligne par défaut à la colonne de lien hypertexte. Je l'ai testé pour voir si cela était une erreur dans ma condition, mais hélas il n'a pas été, en créant une colonne factice et l'affichage du résultat du conditionnel, et je reçois un assortiment de trues et faux.

Je suis à une perte pour expliquer pourquoi la deuxième méthode ne fonctionne pas si je suis en espérant que quelqu'un ici a une meilleure expérience avec displaytags!

Merci!

Était-ce utile?

La solution 2

J'ai fini par le faire avec un peu jsp ... Code ci-dessous ...

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

Autres conseils

Un peu laid, du haut de ma tête:

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top