在Action类和JSP视图中使用ArrayList(Struts 1.x)

时间:2017-07-11 06:49:14

标签: java jsp java-ee arraylist struts-1

我有一个MCQ的ArrayList,从数据库中获取。一旦存储在列表中,我想在我的jsp视图中显示MCQ。 我的第一个问题是我如何将值输入ArrayList。通过两种方式发布我的代码,我认为我可以通过使用Question模型类(注释掉)或非注释方式来发布。

<table>
  <tr>
    <td>horizontal text</td>
    <td class="vertical">long vertical text</td>     
    <td>horizontal text</td>    
  </tr>
</table>

第二个问题是,一旦我有了这个ArrayList,我就转到我的questions.jsp,用他们的选项显示这些问题。我是怎么做到的,我搜索并找到了&lt;逻辑:迭代&gt;标签,但无法使用它。

无论我的混淆大脑在jsp页面中写了什么代码:

public class QuestionsAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, 
HttpServletResponse response) throws Exception
{
List<String> questionList=new ArrayList<String>();
Statement stmt = null;
ResultSet rs=null;

Connection conn=DBConnection.createConnection();
stmt = conn.createStatement();

String query="SELECT * FROM questions";

rs = stmt.executeQuery(query);

while(rs.next())
{   

    /*

     Question question = new Question(rs.getString("qid"), 
                                        rs.getString("question"), 
                                        rs.getString("answer1"), 
                                        rs.getString("answer2"), 
                                        rs.getString("asnwer3"), 
                                        rs.getString("answer4"), 
                                        rs.getString("correctAns"));                                        
     questionList.add(question);

     */

    questionList.add(rs.getString("qid"));
    questionList.add(rs.getString("question"));
    questionList.add(rs.getString("answer1"));
    questionList.add(rs.getString("answer2"));
    questionList.add(rs.getString("answer3"));
    questionList.add(rs.getString("answer4"));
    questionList.add(rs.getString("correctAns"));

    HttpSession session=request.getSession();
    session.setAttribute("questionsList",questionList);
}

 rs.close();
 stmt.close();
 conn.close();

return mapping.findForward("success");
}
}

1 个答案:

答案 0 :(得分:0)

最好使用java类来映射问题。 e.g。

public class Question{
  Long qid;
  String question;
................. and so on
}

现在,您可以通过创建一个新的问题对象并将其添加到问题列表中,轻松地将所有值设置为相应的问题。

loop

    {
     Question question = new Question(); //use setter or constructor and use the value from resultSet
     list.add(question);
    }

对于第二部分,请参阅此示例。

http://codippa.com/how-to-iterate-over-list-of-objects-jstl/