簡體   English   中英

在jsp / servlet中提交表單后選擇單選按鈕

[英]Radio button Selection after submitting form in jsp/servlet

我正在使用單選按鈕提交表單。 我希望提交表單后選中該單選按鈕。 基本上我正在頁面上進行一些搜索過程。 請檢查代碼。

在我的jsp上。

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <% 
                String buttonvalue = (String) request.getParameter("radio");
        %>
        <%= buttonvalue %>

        <form method="post" action="SearchServlet">

            <script type='text/javascript'>
            var button = "<%= buttonvalue %>";
            if(button == "one")
            {
                alert("1");
                document.getElementById("rdone").checked = true;
                document.getElementById("rdtwo").checked = false;
                document.getElementById("rdthree").checked = false;
            }
            else if(button == "two")
            {
                document.getElementById("rdone").checked = false;
                document.getElementById("rdtwo").checked = true;
                document.getElementById("rdthree").checked = false;   
            }
            else if(button == "three")
            {
                alert("3");
                document.getElementById("rdone").checked = false;
                document.getElementById("rdtwo").checked = false;
                document.getElementById("rdthree").checked = true;
                alert("2");
            }
            else
            {
                    alert("4");
            }
        </script>

            <input id="rdone" type="radio" name="radio" value="one"/>
            <input id="rdtwo" type="radio" name="radio" value="two"/>
            <input id="rdthree" type="radio" name="radio" value="three"/>
            <input type="submit" value="Submit"/>
        </form>
    </body>
</html>

並在Servlet中。

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try 
        {
            System.out.println(request.getParameter("radio"));
            RequestDispatcher dispatcher = request.getRequestDispatcher("/radiobutton.jsp");
            System.out.println("--------------"+request.getParameter("radio"));
            dispatcher.forward(request, response);
        } 
        finally 
        {            
            out.close();
        }

    }

一切正常。 但我收到Java腳本錯誤。 請檢查以下屏幕截圖。 由於這個Java腳本,我沒有得到確切的輸出。

在此處輸入圖片說明

您的腳本出現在單選按鈕之前,並且不包含延遲到以后的功能。

您試圖在按鈕存在之前對其進行修改。

將腳本移動到HTML源代碼中的按鈕之后。

我想建議您,當提交JSP頁面時,可以使用以下代碼在servlet上進行處理:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter out = response.getWriter();
            try 
            {
                System.out.println(request.getParameter("radio"));
if(request.getParameter("radio")!= "" || request.getParameter("radio")!=null){
 request.setAttribute("radio");
}
                RequestDispatcher dispatcher = request.getRequestDispatcher("/radiobutton.jsp");
                System.out.println("--------------"+request.getParameter("radio"));
                dispatcher.forward(request, response);
            } 
            finally 
            {            
                out.close();
            }

        }

現在在您的JSP文件中添加以下行:

<input id="rdone" type="radio" name="radio" value="one" <%=((request.getAttribute("radio")!=null && request.getAttribute("radio").toString().equals("one")) ? "checked" : "")%> />
<input id="rdtwo" type="radio" name="radio" value="two" <%=((request.getAttribute("radio")!=null && request.getAttribute("radio").toString().equals("two")) ? "checked" : "")%> />
<input id="rdthree" type="radio" name="radio" value="three" <%=((request.getAttribute("radio")!=null && request.getAttribute("radio").toString().equals("three")) ? "checked" : "")%> />

暫無
暫無

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

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