1

最近 DisplayTag ライブラリの使用を開始しましたが、問題が発生しました。

他のページに実際に表示するものがある場合、ユーザーが別のページにリンクできるようにする列を作成しようとしています。そこに常にハイパーリンクがあるように設定していますが、条件付きで問題があります。空またはその他の変数のセットアップがあります(通常は成功)。これは私がこれまでに試したことです...

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

このメソッドは、display:column タグの途中で jsp を使用しようとするため、display:column タグが終了していないというエラーが発生します。

次に試したのは・・・

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

これによりエラーはスローされませんでしたが、すべての行がハイパーリンク列にデフォルト設定されました。これが条件のエラーであるかどうかをテストしましたが、残念ながらそうではなく、ダミーの列を作成して条件の結果を表示すると、真と偽の素敵な組み合わせが得られました。

2 番目の方法がうまくいかない理由がわからないので、ここにいる誰かが displaytags の経験を積んでくれることを願っています!

ありがとう!

4

2 に答える 2

2

私の頭の上から、少し醜い:

<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>
于 2009-12-18T19:50:01.840 に答える
1

私は小さなjspでそれをやってしまいました...以下のコード...

<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>
于 2009-12-22T21:12:45.923 に答える