Условный столбец с использованием JSP - PullRequest
1 голос
/ 18 декабря 2009

Я недавно начал использовать библиотеку 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"/>
                <%}%>  

Это не выдает никаких ошибок, но каждая строка по умолчанию соответствует столбцу гиперссылки. Я проверил, не было ли это ошибкой в ​​моем условном выражении, но, увы, этого не произошло, создав фиктивную колонку и отобразив результат условного выражения, и я получил прекрасный набор истин и ложностей.

Я в недоумении по поводу того, почему второй метод не работает, поэтому я надеюсь, что у кого-то здесь есть какой-то лучший опыт с тегами отображения!

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 декабря 2009

Немного некрасиво, с макушки головы:

<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>
1 голос
/ 23 декабря 2009

Я закончил делать это с небольшим 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>
...