2013-02-15 91 views
0

我正在使用Spring MVC應用程序,並且我有一個包含以下代碼的JSP。動態使用請求屬性對象屬性

<c:choose> 
      <c:when test="${type eq 'school'}"> 
      <h1 class="title">${schoolVO.name}</h1> 
      </c:when> 

      <c:when test="${type eq 'college'}"> 
      <h1 class="title">${collegeVO.name}</h1> 

      </c:when> 

      <c:when test="${type eq 'tution'}"> 
      <h1 class="title">${tutionVO.name}</h1> 
      </c:when> 
      ... 
      .. 
      .. 
      Many other types... 

</c:choose> 

當在控制器的方法,其依賴於type 設定模型屬性此JSP被調用。

如果類型爲school,它把

modelMap.addAttribute("schoolVO", school); 

如果大學則

modelMap.addAttribute("collegeVO", college); 

同樣的其他..

現在我想在jsp刪除此<c:when>條件。

現在取決於我想補充一個模型屬性的類型,並把兩種 schoolVOcollgeVO

modelMap.addAttribute("typeVO", "schoolVO"); 

所以,我並不需要使用,如果<c:when>條件jsp。 我想使用類似

${{typeVO}.name} 

但是這給了我錯誤

contains invalid expression(s): javax.el.ELException: Error Parsing: 

我怎樣才能做到這一點? 在此先感謝。

P.S.我無法得到適合我的問題的標題。如果有什麼我可以放的東西,請更改它。

回答

0

可以複雜化自己有很多的要求設置不同的屬性。據我所知,這將是最好有一個處理要打印的名字一個屬性:

modelMap.addAttribute("institutionName", school.getName()); 
//or 
modelMap.addAttribute("institutionName", college.getName()); 

包含標題,你將打印,然後在你的JSP你沒有使用任何驗證,只寫

<h1 class="title">${institutionName}</h1> 
+0

實際上,我的代碼的這部分是jsp的頭文件和差異文件。每個類型的身體的其餘部分是不同的。 – vikiiii 2013-02-15 07:34:25

+0

如果我想查看學院,其餘的正文包含使用大學對象的代碼,同樣也適用於其他人。 – vikiiii 2013-02-15 07:35:18

+0

如果這是你的問題(仍然很奇怪),那麼你可以使用BkSantiago的答案。 – 2013-02-15 07:36:33

0

如果他們都有一個字段名爲name那麼你可以做${typeVO.name}