【发布时间】:2015-01-21 05:45:48
【问题描述】:
我将两个列表添加到一个 Map map = new HashMap() 中。我想使用 JSTL 从 jsp 页面中获取值 我的控制器是
@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);
}
我提取第一个列表
<c:forEach var="events" items="${map.theme}">
<option value="${events.themeid}">${events.themename}</option>
但我不知道如何从字符串列表中提取值
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;
}
我使用此代码获取该列表
<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
【问题讨论】:
-
你需要观察你得到的
List<Object>,然后填充List<String>,不要使用object.toString(),迭代List<Object>并获取themedate的值并填写@987654331 @
标签: hibernate jsp spring-mvc hashmap jstl