Изменение страницы сервлетом в JSP - PullRequest
0 голосов
/ 29 марта 2012

Я пишу страницу JSP, в которой пользователь может выбрать опцию с помощью переключателя после нажатия кнопки «Отправить», значение передается сервлету, который проверит значение и перейдет на определенную страницу. Вот код: JSP

<form method="GET" action='Controller' name=main>
<input type="radio" name=dorr value=dog>dog<br>
<input type="radio" name=dorr value=rabbit>rabbit<br>
<input type="submit"name=sub value=submit>
</form>

Сервлет

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward="";
String temp = request.getParameter("dorr");
if (temp=="dog"){
forward = DOG_JSP;
} else if (temp=="rabbit"){
forward = RABBIT_JSP;
} else forward = MAIN_JSP;
RequestDispatcher view = request.getRequestDispatcher(forward);
view.forward(request, response);  }

Странно, страница постоянно меняется на одну и ту же страницу (правильно означает, что temp не имеет правильного значения), но я проверил параметр, что он работает нормально (отображает собакуили кролик) Почему страница не изменилась?

1 Ответ

1 голос
/ 29 марта 2012

Это потому, что вы использовали == для сравнения строковых значений.

Итак, всегда используйте equals() для сравнения строковых значений, а не ==.

Подробнее: Разница между равными / равными и == оператором?

Попробуйте это.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String forward="";
     String temp = request.getParameter("dorr");
     if (temp.equals("dog")){
        forward = DOG_JSP;
     } else if (temp.equals("rabbit")){
        forward = RABBIT_JSP;
     } else {
       forward = MAIN_JSP;
     }
    RequestDispatcher view = request.getRequestDispatcher(forward);
    view.forward(request, response);  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...