用的struts2的 get set 方法传map
private Map setPageBean(List<BookInfo> bookInfoList, List bookBorrowList) {
Map<String, String> map = new TreeMap<String, String>();
for (int i = 0; i < bookInfoList.size(); i++) {
BookInfo bookInfo = bookInfoList.get(i);
int oid = bookInfo.getOid();
String bookName = bookInfo.getBookName();
String bookType = bookInfo.getBookType();
for (int j = 0; j < bookBorrowList.size(); j++) {
BookBorrowInfo borrowInfo = (BookBorrowInfo) bookBorrowList.get(j);
int bookId = borrowInfo.getBookID();
if (bookId == oid) {
Date date = borrowInfo.getBorrowDate();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String format = sdf.format(date);
String borrowDate = format;
map.put("bookName", bookName);
map.put("bookType", bookType);
map.put("borrowDate", borrowDate);
map.put("backDate", "");// TODO 归还时间
}
}
}
return this.map = map;
}
在页面上用EL循环
<c:forEach var="map" items="${map}">
<td>${map.key}</td>
<td>${map.value}</td>
能取到所有的key和value 但是 不能取单独的一个值
使用${map.value.bookName} 什么页面就报错
javax.el.PropertyNotFoundException: Property 'bookName' not found on type java.lang.String
14 个解决方案
#1
${map.value}并不是一个对象
#2
${map.value} 取出来的是一个字符串值
#3
我知道${map.value}取出来的是一堆值,
我想问 怎么取单个值
${map.value.bookName}
没用
我想问 怎么取单个值
${map.value.bookName}
没用
#4
你的map的值是一个String啊,哪来的bookName
#5
请详细说明一下错误位置什么的
#6
${map.bookName}
或者直接${bookName}
得了。
或者直接${bookName}
得了。
#7
Map<String, String> map = new TreeMap<String, String>();
楼主,你的概念不清楚,你这个map中存的是string,而你取数据却要从book对象取,这样是取不出来的。
建议你这样写
map<book.getid,book>
book = new book;
book.set***
book.set***
map.put(book);
这样的话就行了,你的页面就不用改了,你那种存的方式有问题
楼主,你的概念不清楚,你这个map中存的是string,而你取数据却要从book对象取,这样是取不出来的。
建议你这样写
map<book.getid,book>
book = new book;
book.set***
book.set***
map.put(book);
这样的话就行了,你的页面就不用改了,你那种存的方式有问题
#8
不知道说什么好,要是你这个就能出我 我有必要发这个帖么
#9
<c:forEach var="map" items="${map}">
<td>${map.key}</td>
<td>${map.value}</td>
首先你这句话就有问题
你的items也叫map,遍历的变量也叫map
你要遍历就给换个名字
其次这里根本就不用遍历
整个语句就写一个
${map.bookName}就得了,遍历啥?
#10
用el表达式取得map中的值
格式为
${map名字.键}
格式为
${map名字.键}
#11
${map['bookName']}
#12
感觉你这个java 方法不对,不知道你想干什么,
循环把对象的属性放map里?
循环把对象的属性放map里?
#13
...???!!!
#14
${map['bookName']} , bookName为map的key值
#1
${map.value}并不是一个对象
#2
${map.value} 取出来的是一个字符串值
#3
我知道${map.value}取出来的是一堆值,
我想问 怎么取单个值
${map.value.bookName}
没用
我想问 怎么取单个值
${map.value.bookName}
没用
#4
你的map的值是一个String啊,哪来的bookName
#5
请详细说明一下错误位置什么的
#6
${map.bookName}
或者直接${bookName}
得了。
或者直接${bookName}
得了。
#7
Map<String, String> map = new TreeMap<String, String>();
楼主,你的概念不清楚,你这个map中存的是string,而你取数据却要从book对象取,这样是取不出来的。
建议你这样写
map<book.getid,book>
book = new book;
book.set***
book.set***
map.put(book);
这样的话就行了,你的页面就不用改了,你那种存的方式有问题
楼主,你的概念不清楚,你这个map中存的是string,而你取数据却要从book对象取,这样是取不出来的。
建议你这样写
map<book.getid,book>
book = new book;
book.set***
book.set***
map.put(book);
这样的话就行了,你的页面就不用改了,你那种存的方式有问题
#8
不知道说什么好,要是你这个就能出我 我有必要发这个帖么
#9
<c:forEach var="map" items="${map}">
<td>${map.key}</td>
<td>${map.value}</td>
首先你这句话就有问题
你的items也叫map,遍历的变量也叫map
你要遍历就给换个名字
其次这里根本就不用遍历
整个语句就写一个
${map.bookName}就得了,遍历啥?
#10
用el表达式取得map中的值
格式为
${map名字.键}
格式为
${map名字.键}
#11
${map['bookName']}
#12
感觉你这个java 方法不对,不知道你想干什么,
循环把对象的属性放map里?
循环把对象的属性放map里?
#13
...???!!!
#14
${map['bookName']} , bookName为map的key值