将对象绑定到JSP页面上的控件 [英] Binding objects to controls on JSP pages

查看:154
本文介绍了将对象绑定到JSP页面上的控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Java应用程序中使用了以下类。

I have the following class that I'm using in my Java with JSP applicaton.

//
公共类QuestionBO实现Serializable {

// public class QuestionBO implements Serializable{

private int questionId;
private int testID;
private String question;

private TutorBO infoAboutTutor;
private SubjectBO infoAboutSubject;
private TestBO infoAboutTest;
private List<AnswerBO> answers;

public QuestionBO() {
}

public QuestionBO(String question) {
    this.question = question;
}

getter& setter ....

getter & setter....

JSP页面有一个表单,其中每个Question(其String表示)旁边都有一个复选框。用户标记了一些问题并将表单提交给服务器以供servlet处理。

The JSP page has a form where each Question (its String representation) has a checkbox next to it. A user marks some of the questions and submits the form to the server for processing by a servlet.

将Question对象与复选框绑定的常规方法是什么,以便我可以找出选择了哪些问题?

What is the conventional way of binding the Question objects with the checkboxes so that I could find out what Questions have been selected?

目前我正在使用以下方法构建表单:

Currently I'm using the following approach for constructing the form:

//

    <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}"/>            
        <table border ="1">
            <tbody>
                <c:forEach items="${questionsForSubject}" var="question">
                    <tr>
                        <td>
                            <input type="checkbox" name ="choosen_question" 
                                   value="${question.getQuestion()}">
                            ${question.getQuestion()}
                            <br />
                        </td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
        <input type="submit" value="Add questions "/>              
    </form> 

我不应该使用框架。

谢谢

我有上一个问题

And I have last question

    <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="Добавить вопросы"/>              
    </form> 

如何在servlet上从这个页面获取地图?

How I can get map from this page on servlet?

推荐答案

为每个复选框指定一个唯一值。例如,唯一的问题标识符:

Give each checkbox an unique value. For example, the unique question identifier:

<c:forEach items="${questionsForSubject}" var="question">
    <tr>
        <td>
            <input type="checkbox" name="chosen_question" value="${question.questionId}" />
            ${question.question}
            <br />
        </td>
    </tr>
</c:forEach>

这样你就可以通过servlet中的以下调用来获取所有选中的值:

This way you'll be able to grab all checked values by just the following call in the servlet:

String[] chosenQuestions = request.getParameterValues("chosen_question");

这篇关于将对象绑定到JSP页面上的控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆