繁体   English   中英

我们如何从地图上显示一个键及其值 <String, List<Object> &gt;一次在JSP页面上?

[英]How Can we show One Key and its Values from Map<String, List<Object>> at a time on a JSP page?

我正在做一个测验项目,我想一次显示一个问题及其各个选项。 我创建了一个数据库,并通过使用HQL将这些数据带到了JSP页面上。 我已经将该数据放在MAP中。 我正在使用entrySet迭代地图。 现在,我可以在JSP页面上显示所有问题及其选项,但是我想一次显示一个问题及其选项,然后单击NEXT按钮,我想显示下一个问题及其选项,依此类推。 。

我在Jsp页面上的代码是:

<%
Map<String, List<Answers>> map = new HashMap<String, List<Answers>>();
map = (Map)session.getAttribute("questAndAns");

%>  

<%
for(Map.Entry<String,List<Answers>> entry : map.entrySet())
{
%>
<br>
<%
List list =  entry.getValue(); 
if(list != null && list.size() > 0)
for(int i = 0 ; i < list.size(); i++)
{
 Answers answers =(Answers) list.get(i);
%>
<%= answers.getAnswer() %>

Map中的String包含一个问题,而List是该特定问题的选项。 我该如何实现?

帮助表示赞赏。 提前致谢。

您可以使用map.keySet()获取所有问题。 然后使用map.get(key)获取它的选项列表。

Set<String> questions = map.keyset();
for(String q : questions) {
    List<Answers> answers = map.get(q);
    . . . 
}

我认为您应该使用这样的类将每个问题及其可能的答案封装在一个专用对象中:

public class Question {
    private String text;
    private List<String> options;
    // getters and setters ...
}

然后,您可以将您的Question对象存储在List<Question>Map<String,Question>以便每个对象都有一个标识符(数字或字符串)。 当页面被加载时,就可以检索Question与给定的识别符(作为一个请求参数通过或给出由一些其它逻辑),并将其传递作为页面/请求属性。

我希望我理解了这个问题,这对您有所帮助。

另外,请考虑在JSP中使用表达式语言JSTL标记,而不是纯Java代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM