2014-12-30 2 views
1

Я хочу получить значения нескольких меток, которые я использовал в веб-форме. Я использую скрытое поле ввода, чтобы сделать это, но я не могу напечатать значение метки через сервлет, поскольку Im получает значение null в качестве значения меткиНевозможно напечатать значение метки в сервлете

Ниже приведены примеры кода, которые я использую чтобы проверить

index.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> 
    <form name = "testform" action="submit" method = "post"> 
     <label> AgeoftheChild </label> 
     <input type="hidden" name="lblage" value="AgeoftheChild"> 

     <input type = "radio" name="age" value="10">10 <br> 
     <input type = "radio" name="age" value="20">20 <br> 
     <input type = "radio" name="age" value="30">30 <br> 

     <input type="submit" name="sub" value="submit"> 
    </form>  
</body> 

Это submit.java Servlet

public class submit extends HttpServlet { 


protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 

    String age = request.getParameter("lblAge"); 

    try { 
     /* TODO output your page here. You may use following sample code. */ 
     out.println("<!DOCTYPE html>"); 
     out.println("<html>"); 
     out.println("<head>"); 
     out.println("<title>Servlet NewServlet</title>");    
     out.println("</head>"); 
     out.println("<body>"); 
     out.println("<h1>Servlet NewServlet at " + age + "</h1>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } finally { 
     out.close(); 
    } 


} 

}

Я хочу, чтобы отобразить AgeoftheChild но выход является нулевым

Пожалуйста, помогите с возможными решениями

Спасибо заранее

ответ

1

В первый раз, когда вы показываете форму, lblAge имеет значение null (еще нет формы). Только после отправки формы lblAge будет заполнен.

if (request.getMethod().equalsIgnoreCase("POST")) { 
    ... 

(IgnoreCase немного перестарались.)

+0

Это сработало: D Большое спасибо! – userSu

1

С вашей HTML странице вы передаете lblage и в вашем сервлет, вы принимаете его как request.getParameter("lblAge"); Итак, вам нужно изменить свой ярлык, чтобы получить значение в сервлете

`request.getParameter("lblage");` 

В сервлет необходимо реализовать методы от GenericServlet или HttpServlet, а затем использовать объект запроса, чтобы получить требуемый параметр или атрибуты из запроса.

в вашем случае использование необходимо использовать doPost способ.

+0

Спасибо за указание на ошибку. Я запустил проект после «Очистить и buid», но снова получил то же самое :( – userSu

+0

put 'String age = request.getParameter (« lblAge »);' эта строка перед 'response.setContentType (" text/html; charset = UTF-8 ");' т.е. первая строка в вашем сервлете и с помощью sop проверить значение возраста. Изменить метод на 'doPost' отредактирован в ответ –

1

Вы пробовали использовать метод HttpServlet doPost?

Смежные вопросы