2012-02-08 9 views
0

私のクラス内側のリストを表示しているそして、私のメインクラスは、私のJSPページでJSPフォーム選択タグは、

public class Query { 
    private Long id; 

    @NotNull 
    @Size(min = 0, max = 1500) 
    private String queryString; 

    private String searchFilterCondition; 

    private List<CriteriaConfig> configuredCriteriaList; 

    //.. Other operations ..// 

} 

である私は現在、リストとしてのオペランドを表示します私CriteriaConfigさんが

のように定義されている場合、私は

<form:select path="searchFilterCondition" multiple="false"> 
         <form:options items="${query.configuredCriteriaList}" itemLabel="operands" value="operands"/> 
        </form:select> 

として行われてきました

1. CriteriaConfig {1, "Test1", "String", "Test1", 1, "AND, OR, NOT" } 
2. CriteriaConfig {2, "Trial", "Date", "Trial", 2, "LESSTHAN, GREATERTHAN" } 

ここで、どのdisplayNameが選択されているかを確認し、それぞれのドロップダウンを表示したいのですが、どうすればよいですか?

答えて

0

私は解決策があると思ったのですが、CriteriaConfigオブジェクトの数が増えた場合、パフォーマンス上の問題が長期間発生しますが、これにもかかわらず、より良い解決。

<c:forEach items="${query.configuredCriteriaList}" var="queryOperations" varStatus="loopStatus"> 
         <c:out value="${loopStatus.count}"/> 
         <c:out value="${queryOperations.displayName}"/> 
         <!-- If we want to display the operands specific for a display type, then we need the condition else, we can ignore it --> 
         <c:if test="${queryOperations.displayName=='Test1'}"> 
          <form:select path="searchFilterCondition" multiple="false"> 
           <form:options items="${queryOperations.operands}" value="${queryOperations.operands}" itemLabel="operandType"/> 
          </form:select> 
         </c:if> 
        </c:forEach>