0

在基于对象的状态构造 JSP 页面之前,我有一个对象(集合)。

        Map<Integer, QuestionBO> questionsIdsMap = new TreeMap<Integer, QuestionBO>();

        for (QuestionBO question : questionsForSubject) {
            questionsIdsMap.put(question.getQuestionId(), question);                
        } 

        request.setAttribute("questionsForSubject", questionsIdsMap);

然后我对表单进行一些操作并将整个页面提交回 servlet 进行处理。

    <jsp:useBean id="questionsForSubject" class="java.util.Map" scope="request"/>

    <c:if test="${not empty questionsForSubject}">
    <form  action="/TutorWebApp/controller" method="POST" name="addQuestionForm">
        <input type="hidden" name="command" value="add_question_list" />
        <input type="hidden" name="testName" value="${testName}"/> 
        <input type="hidden" name="questionsForSubject" value="${questionsForSubject}"/>
        <table border ="1">
            <tbody>
                <c:forEach items="${questionsForSubject.keySet()}" var="questionID">
                    <tr>
                        <td>
                            <input type="checkbox" name ="choosen_question" value="${questionID}">
                            ${questionsForSubject.get(questionID).getQuestion()}
                            <br />
                        </td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
        <input type="submit" value="Add questions"/>              
    </form> 
    </c:if>  

传递前面提到的集合以使其在 servlet 端可用的传统方法是什么?

我应该在没有任何框架的情况下做到这一点。

4

2 回答 2

0

既然你用过

request.setAttribute("questionsForSubject", questionsIdsMap);

您不需要使用 jsp:useBean 标记。
对于显示,请尝试

<c:forEach items="${questionsForSubject}" var="current">
                <tr>
                    <td>
                        <input type="checkbox" name ="choosen_question" value="${current.key}">
                        ${current.value}
                        <br />
                    </td>
                </tr>
</c:forEach>
于 2012-05-02T01:59:06.897 回答
0

创建 JSP 的请求和提交 JSP 时生成的请求是完全不同的请求,并且在调用 servlet 时放置在 JSP 上的任何属性都将不可用。

检查详细答案: 将对象从 JSP 页面传递回 Servlet

于 2012-05-02T05:22:13.517 回答