1

我是 jsp 的新手,并且对显示标签的导出功能感兴趣。说,我有这个简单的结构:

 public class MyActionBean implements ActionBean{
      List<Country> countries;
      // getters and setters and some other un-related logic
 }


public class Country {
    List<String> countryName;
    List<Accounts> accounts;
    // getters and setters and some other un-related logic
}


public class Accounts {
    private FinancialEntity entity;
    // getters and setters and some other un-related logic
}

public class FinancialEntity {
    String entityName;
    // getters and setters and some other un-related logic
}

现在,我想制作一个表格,其中有两列 - 国家名称和实体名称(FinancialEntity)

     <display:table id="row" name="${myActionBean.countries}" class="dataTable" pagesize="30" sort="list" defaultsort="8"  export="true" requestURI="">
        <display:column title="Country" sortable="true" group="1" property="countryName" />
        <display:column title="Financial Entity"> somehow get all of the entity names associated with the country? </display:column>
     </display:table>

所以,基本上我想遍历账户并获得所有的金融实体。我不知道如何在带有 displaytag 的 JSP 中做到这一点。我尝试使用 c:forEach 和 display:setProperty 标签,但看起来这个标签不是用于这些目的。我被卡住了:(

先感谢您 :)

4

1 回答 1

1

您不必在 jsp 中完成工作。您可以在模型对象和控制器中完成这项工作。

public class CountryFinancialEntity {
    private Country country;
    public CountryFinancialEntity(Country country) {
        this.country = country;
    }
    public String getCountryName() {
        return this.country.getName();
    }
    public List<String> getFinancialEntityNames() {
        List<String> financialEntityNames = new ArrayList<String>
        for (Account account : this.country.getAccounts() {
            financialEntityNames.add(account.getFinancialEntity().getName();
        }
    }
}

然后为您的所有国家/地区制作这些对象的列表,并将此对象传递给您的视图(jsp)。

希望这将简化显示标签的使用并允许您使用 ac:forEach 标签。

编辑

如果你必须在 jsp 中完成这项工作。

我建议只通过国家/地区列表。MyActionBean 确实无济于事,可能会引起混乱。

您的 jsp 将如下所示:

<display:table id="country" name="countries">
    <display:column title="Country Name" property="name" />
    <display:column title="Financial Name" >
        <ul>
        <c:forEach var="account" items="${country.accounts}">
            <li>${account.financialEntity.name}</>
        <c:forEach>
        </ul>
    </display:column>
</display:table>

顺便说一句,这很可能是 CountryFinancialEntity 的样子,但如果您要使用其他列,则使用 CountryFinancialEntity 对象之类的对象,而是将其称为 TableRowModel。

于 2013-10-16T02:52:14.433 回答