使用字段名称获取 JSP 中的值

getting value in JSP by using field name

我在我们的应用程序中有类似下面的要求,

我想以 table 的形式显示以下详细信息。

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 class 中,字段名称和 selColumns 键名称相同。

class CountryDetails {

  private String country,
                 population,
                 CapitalCity,
                 Aria;
 }

在 UI 中,我正在尝试使用以下代码来实现相同的目的。

<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>

Table header 工作正常。但是我很难只显示配置列的行信息。 代码无法运行,因为它试图在 java 端找到 getDet()。

有人可以帮忙 JSP 中有什么办法吗,如果我给 属性(field) name 对应的值会 return?

像这样

提前致谢, 猫咪

试试这个。

<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