2015-12-17 3 views
0

Требование состоит в том, что мне нужно отображать некоторые флажки в столбце на странице jsp в таблице, если они настроены на отображение или нет.Проверить, содержит ли список элементы или нет

В моем классе действий у меня есть логика, которая извлекает значения конфигурации из db и сохраняет ее в массиве.

Теперь вопрос:

я должен хранить массив в сессии или что-то, так что я могу получить доступ к нему внутри моего метода декоратора и возвращает соответствующий HTML для отображения флажок или нет?

Или мне нужно пересечь список на странице jsp и посмотреть, присутствует ли запись (см. ID в JSP) в списке, а затем отобразить столбец?

Лично мне нравится второй подход, но не знаю, как это сделать.

Вот моя страница JSP.

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<%@ taglib uri="/tags/star" prefix="star" %> 
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %> 

<div id="tableContainer" class="tableContainer95"> 

    <display:table id = "displayTable" 
       name = "contentToDisplay" 
       class = "scrollTable" 
      decorator = "decoractorClass"> 

     <display:column property = "displayTextField()" 
         titleKey = "ID"/> 

     <!--Only display checkbox if ID is present in some list in action class--> 
     <display:column property = "displayCheckBox()" 
         sortable = "false" 
        headerClass = "sortable" /> 
+0

Почему бы не использовать какую-нибудь карту? –

ответ

0

Оба подхода в порядке.

Если вы идете с клиентской стороны, вы можете сделать это несколькими способами (с условием в JSTL, в OGNL и т. Д.).

Поскольку вы используете Struts2, используйте OGNL, что-то вроде:

<display:column> 

    <s:if test="%{myId in someList}"> 
     <s:checkbox ... /> 
    </s:if> 

</display:column> 

Обратите внимание, что, чтобы получить PageContext вам нужно использовать #attr, и после этого вам нужно вызвать экземпляр таблицы через его uid, like described in this answer ,

+0

Спасибо Андреа, позвольте мне попробовать. –