最近 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 の経験を積んでくれることを願っています!
ありがとう!