簡體   English   中英

Java Servlet:如何檢索選定的單選按鈕值?

[英]Java Servlet: How can I retrieve selected radio button values?

我創建了一個簡單的 servlet,其中將向用戶提出 2 個問題,回答真或假。 我的問題在於檢索用戶選擇的答案。

代碼:

            out.println("<FORM ACTION=\"Game\" METHOD = \"POST\">" +

        "<b>Question 1: Are you over the age of 25? </b><br> <br>" +

        "<input type = \"radio\" name = \"Q1rad1\" onclick = \"getAnswer('a')\"> True " +
        "<input type = \"radio\" name = \"Q1rad2\" onclick = \"getAnswer('b')\"> False<br>" +

        "<br><br><b>Question 2: Are you from earth?</b><br> <br>" +

        "<input type = \"radio\" name = \"Q2rad1\" onclick = \"getAnswer('a')\"> True " +
        "<input type = \"radio\" name = \"Q2rad2\" onclick = \"getAnswer('b')\"> False<br>" +

        out.println("<Center><INPUT  TYPE=\"SUBMIT\"></Center>");


        );

每個問題都有 2 個單選按鈕,Q1rad1 和 Q2rad2,用於回答 True 或 False。 當按下提交按鈕時,我如何知道每個用戶選擇的值。

我知道使用 Javascript 可能更有效,但出於這個問題的目的,我必須使用 servlets。

您必須定義選擇單選按鈕時要檢索的值

設置定義了如果選中將提交的內容。

名稱設置告訴字段屬於哪一組單選按鈕。 當您按下 select 一個按鈕時,同一組中的所有其他按鈕均未選中。

<input type="radio" name="Q2" onclick="getAnswer('b')" value="b">
<input type="radio" name="Q2" onclick="getAnswer('a')" value="a">

在您將收到請求的 Servlet 中,您將擁有類似的東西

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // get the value of the button group 
    String q2 = request.getParameter("Q2");
    // compare selected value 
    if ("a".equals(q2)) {
    ...
    }
    ...
    
}

您沒有正確命名單選按鈕。 同一問題的每個單選選項都需要相同的名稱屬性。 此外,每個<input type="radio">都應該有一個value屬性。 我不確定您是否需要onclick處理程序。 您還應該有一個</form>更接近的標簽。 您的表單可能如下所示:

 out.println("<form action=\"Game\" method=\"POST\">" +

    "<b>Question 1: Are you over the age of 25? </b><br> <br>" +

    "<input type = \"radio\" name = \"Q1\" value=\"True\"> True " +
    "<input type = \"radio\" name = \"Q1\" value=\"False\"> False<br>" +

    "<br><br><b>Question 2: Are you from earth?</b><br> <br>" +

    "<input type = \"radio\" name = \"Q2\" value=\"True\"> True " +
    "<input type = \"radio\" name = \"Q2\" value=\"False\"> False<br>" +

    "<Center><INPUT  TYPE=\"SUBMIT\"></Center>" +

    "</form>"
    );

然后在處理表單提交的 servlet 的doPost()方法中,您可以使用request.getParameter()訪問這些值。 像這樣:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String q1 = request.getParameter("Q1");
    String q2 = request.getParameter("Q2");
    // more processing code...
}

給同一個問題的radio起相同的名字,設置不同的值。 看看這個頁面

然后在請求中您將獲得一個參數,其中包含無線電組的名稱和所選的值。 提交 servlet 后接收帖子可以使用:

String value = request.getParameter("radioName");

對於您的 HTML 代碼,以下幾行就足夠了

protected void doPost(HttpServletRequest req,HttpServletResponse res){
String q1 = request.getParameter("Q1");
String q2 = request.getParameter("Q2");`
}

例如,考慮您的 HTML 代碼。

如果按下 Q1

“真的”

那么它將是我們在 Servlet 中的“輸入”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM