题
我最近开始使用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>
此方法试图在显示屏中间使用JSP:列标记,我最终会得到未终止的显示:列标记错误。
接下来我尝试了...
<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"/>
<%}%>
这没有丢弃任何错误,但是每行默认为超链接列。我测试了这是否是我的条件中的错误,但可惜的是,创建了一个虚拟的列并显示了条件的结果,并且我得到了各种各样的Trues和Falses。
对于为什么第二种方法不起作用,我感到不知所措,所以我希望这里有人在DisplayTags上有更好的经验!
谢谢!
解决方案 2
我最终用一些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>
其他提示
有点丑陋,从我的头顶上:
<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>
不隶属于 StackOverflow