2013-04-11 2 views
0

Я отправляю форму с переключателем. и я хочу, чтобы этот переключатель был проверен после отправки формы. в основном я делаю процесс поиска на странице. проверьте код.Выбор радио кнопки после отправки формы в 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> 

и в сервлете.

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-скрипта я не получаю точный вывод.

enter image description here

+2

* * Опасность **: вы выводите данные из URL непосредственно на страницу. Это делает вас уязвимыми для [XSS-атак] (http://en.wikipedia.org/wiki/Cross-site_scripting). – Quentin

ответ

1

Ваш скрипт появляется перед радиокнопками, и не состоит из функции, которая не получает с задержкой до позже.

Вы пытаетесь изменить кнопки перед их существованием.

Переместите сценарий после кнопок в источнике HTML.

+0

Точный ответ. Спасибо. – KSHiTiJ

0

Я хотел бы предложить вам, что, когда ваша страница JSP, это представить, вы можете обрабатывать его в сервлет, используя следующий код:

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