我想从数据库传递一些值来填充带有各种选择菜单的页面(大约5个)。
我可以使用JSTL SQL
标记执行此操作,但这不是一个好习惯。
如何从单个servlet获取此数据? 我可以从一个servlet发送多个列表吗?
选择菜单从不同的表中填充。我想使用RequestDispatcher
将列表转发给jsp。
答案 0 :(得分:3)
您可以使用单独的ArrayList
来存储在Servlet中检索的各种列表,然后将每个列表存储为@devsundar所述的请求属性。您可以通过request
隐式对象在JSP中检索这些属性。
如果您只想在单个请求属性中发送所有列表,那么@KaipaMSarma's建议最好有HashMap<String, ArrayList>
,因此您的servlet代码可能如下所示:
List list1 = getListOneFromDatabase();
List list2 = getListTwoFromDatabase();
List list3 = getListThreeFromDatabase();
// and so on ...
Map<String, List> requestListMap = new HashMap<String, List>();
requestListMap.put("list1", list1);
requestListMap.put("list2", list2);
requestListMap.put("list3", list3);
// and so on ...
request.setAttribute("reqListMap", requestListMap);
希望这有帮助。
答案 1 :(得分:1)
您可以在request属性中设置数据库中的数据,并在JSP中呈现它。
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#setAttribute(java.lang.String,java.lang.Object)
答案 2 :(得分:1)
是的,你可以做到。从servlet中,您可以访问数据库(任意数量的表)并将结果集存储在集合对象中,并将这些对象作为属性传递给JSP。