получение значения в JSP с использованием имени поля - PullRequest
0 голосов
/ 28 мая 2018

У меня есть требование, похожее на приведенное ниже, в нашем приложении,

. Я хотел бы показать ниже детали в виде таблицы.

Country   Name  Population  CapitalCity    Aria
US        XX    XX          XX              XX
IN        YY    YY          YY              YY

Пользователь может выбрать на странице конфигурациикакие столбцы он заинтересован видеть.

В бэкэнде я устанавливаю атрибуты модели, как показано ниже (с помощью Spring MVC),

model.addAttribute("selColumns", "column keys");
model.addAttribute("countryDetails", "List  of country details");

В классе CountryDetail имена полей и имена ключей selColumnsто же самое.

class CountryDetails {

  private String country,
                 population,
                 CapitalCity,
                 Aria;
 }

В пользовательском интерфейсе я пытаюсь с помощью следующего кода добиться того же.

<table class="table table-hover table-bordered table-striped">
        <thead>
            <tr>
                <c:forEach items="${selColumns}" var="item">
                <th><spring:message code="${item}" /></th>
                </c:forEach>
            </tr>
        </thead>

        <tbody>
            <c:forEach items="${countryDetails}" var="det">
                <tr>                    
                <c:forEach items="${selColumns}" var="item">
                    <td>
                    //Below code is not working
                    <c:out value="${item.det}" /></td>                  
                        </c:forEach>            
                </tr>
            </c:forEach>
        </tbody> 
    </table>

Заголовок таблицы работает нормально.Но я изо всех сил пытаюсь показать информацию о строке только для настроенных столбцов.Код не будет работать, потому что он пытается найти getDet () на стороне java.

Может кто-нибудь помочь, есть ли способ в JSP, если я даю свойству (полю) name соответствующее значение, которое вернет?

Примерно так

Заранее спасибо, котенок

1 Ответ

0 голосов
/ 28 мая 2018

Попробуйте это.

<tbody>
        <c:forEach items="${countryDetails}" var="det">
          <tr>
             <c:forEach items="${selColumns}" var="item">
                <td>
                   <c:out value="${det[item]}" />
                </td>
             </c:forEach>
          </tr>
      </c:forEach>
</tbody>

Примечание:

selColumns = ["Country", "Population", "CapitalCity", "Aria"]
CountryDetails properties = Country,Population,CapitalCity,Aria
...