0

i am submitting form with radio button. and i want that radio button as checked after submitting a form. basically i am doing some searching process on page. please check code.

on my 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>

and in 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();
        }

    }

all working fine. but i am getting java script error. please check following screen shot. because of this java script i am not getting exact output.

enter image description here

1
  • 2
    Danger: You are outputting data from the URL directly into the page. This renders you vulnerable to XSS attacks. Commented Apr 11, 2013 at 10:05

2 Answers 2

1

Your script appears before the radio buttons, and doesn't consist of a function that gets delayed until later.

You are trying to modify the buttons before they exist.

Move the script to after the buttons in the HTML source.

Sign up to request clarification or add additional context in comments.

Comments

0

I would like to suggest you that when your JSP page is submit you can handle it on servlet using following code:

    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();
            }

        }

now add following line in your JSP file:

<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" : "")%> />

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.