2015-01-21 102 views
-1

我將兩個列表添加到一個Map map = new HashMap()中。我想使用JSTL從獲得在JSP頁面中值 我contriller是如何使用JSTL迭代Map <String,List> map = new HashMap <String,List>()在jsp頁面中使用JSTL

 @RequestMapping("/addprogram") 
public ModelAndView thematicday() 

    { 
    Map<String, List> map = new HashMap<String, List>(); 
    try{ 
     List<Themes> theme=dataServices.getTheme(); 
     List<String> themeday=dataServices.getThematicDate(); 

     map.put("theme", theme); 
     map.put("themeday", themeday); 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    return new ModelAndView("thematicday","map",map); 
    } 

我exctract第一個列表

<c:forEach var="events" items="${map.theme}"> 
          <option value="${events.themeid}">${events.themename}</option> 

但我不知道如何從字符串列表exctract值

daoImpl中的第二個列表

@SuppressWarnings("unchecked") 
@Override 
public List<String> getDate() { 
    List<ThematicDay> Themedate = null; 
    session=sessionFactory.openSession(); 
    tx=session.beginTransaction(); 
    Query query = session.createQuery("select a.themedate,a.thematicdayid from tableone a where a.thematicdayid in(SELECT thematicdayid FROM tabetwo GROUP BY thematicdayid HAVING COUNT(*) < 3)"); 
    List<Object> result = (List<Object>) query.list(); 

    List<String> strings = new ArrayList<String>(); 
    for (Object object : result) { 
     strings.add(object != null ? object.toString() : null); 
    } 
    System.out.println("\n\n *&*&*&* "+strings); 
    for(int i=0; i<strings.size(); i++){ 
     String stringArray = strings.get(i); 
     System.out.println("\n\n *&*&*&* "+stringArray); 


    } 
    tx.commit(); 
    session.close(); 
    return strings; 
} 

我們E該代碼來獲得該列表

<c:forEach var="Date" items="${map}"> 
        <c:if test="${Date.key == 'themeday'}"> 
        <div class="bottom-article"> 
         <ul class="meta-post"> 
          <li><a href="#" class="tl_1"> ${Date.value[0]} </a></li> 
          <li><a href="#" class="tl_2">${Date.value[1]} </a></li> 
         </ul> 
         </div> 
         </c:if> 
         </c:forEach> 

但得到這樣

[Ljava.lang.Object;@762b0f 
[Ljava.lang.Object;@4f983 
+1

你需要觀察'List '你得到了,一個dthen填充'列表',不要使用'object.toString()',迭代'List '並且獲得'themedate'的值並且填充'列表' – 2015-01-21 08:28:54

回答

0

結果請與此嘗試。

<c:forEach var="themedays" items="${map.themeday}"> 
    <c:foreach var="theme" items="${themedays}"> 
     <b> ${theme} </b> 
    </c:foreach> 
</c:foreach> 
+0

對不起,我得到結果 「主題演講」。其實我需要得到結果 01/14/2015 DAY1007 02/14/2015 DAY1008 – 2015-01-21 06:40:19

+0

@PriyankaShaju現在就試試,回答編輯 – 2015-01-21 06:41:55

+0

得到值[Ljava.lang.Object; @ a3e5fc [Ljava.lang.Object; @ 502bb9。不是確切的值。 – 2015-01-21 06:51:35

0

下面的方法可以應用於與字符串遍歷HashMap和bean的對象列表

<c:forEach items="${map}" var="events"> 
// iterate the key here 
    StringValues= ${events.key} 
// iterate the values of list here 
    <c:forEach items="${events.value}" var="item" > 
     ${item} 
    </c:forEach> 
</c:forEach> 

在這裏看到:

+0

它還印刷價值 列表值這裏[Ljava。lang.Object; @ 1a99a72 [Ljava.lang.Object; @ 1dada3。其實我需要得到結果01/14/2015 DAY100 02/14/2015 DAY107 – 2015-01-21 06:49:19

+0

@Priyanka似乎你沒有正確訪問bean的屬性,你能用你正在嘗試的代碼更新你的問題嗎? – 2015-01-21 07:02:07

+0

只是還是熬不過使用List 結果=而不是List 結果=(名單)query.list(名單)query.list()()。你能解釋一下如何在列表中存儲我的DaoImpl中的值。 – 2015-01-21 08:15:08

相關問題