валидация полей

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

#1
не получается проверка на пустые поля.
пытаюсь сделать сервлет. в сервлете метод doPost, в кот пока только:
String surname = request.getParameter("surname");
String name = request.getParameter("name");
....
(предполагается потом будет ставится проверка этих полей)

в jsp: <form action="emptyFieldResume" method="post">

а web.xml такой:
<servlet>
<servlet-name>emptyFieldResume</servlet-name>
<servlet-class>servlets.EmptyFieldResume</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>emptyFieldResume</servlet-name>
<url-pattern>/emptyFieldResume</url-pattern>
</servlet-mapping>

в tomcat в папке WEB-INF папка classes и в ней еще папка servlets, в котором как раз EmptyFieldResume.class.
на всякий случай папку servlets запихала в папку, где jsp находятся.

в общем, проблема такая:
когда нажимаю на Submit, то у меня открывается страница, конец url которой emptyFieldResume, соответственно ошибка - не найдена (404).
тогда в сервлете я еще добавила строку в конце response.sendRedirect("workBlank.jsp"); (не знаю, что она обозначает, но больше всего похоже на то, что ответом должна быть новая страница). ошибка осталась та же.
может кто-то помочь?
ну или хотя бы как вообще нужно валидацию jsp-страницы делать? (я не использую jstl, struts, spring...)
 
G

Guest

#2
в общем, ладно - избавилась я от сервлета.
валидацию делаю в jsp.
resume.jsp
<%if ((surname == null)) {
%>
<form action="resume.jsp" method="post" >
различные теги
<% else { %>
<jsp:forward page="workBlank.jsp"/>
<% } %>
в общем, в любом случае (заполнено ли поле surname или нет) происходит переадресация на workBlank.jsp почему не реагирует на условие if ?

в общем, рассказываю, как дальше у меня дела продвигаются :)
в условие добавила surname.length == 0 - заработало.
НО. у меня есть меню выпадалка, по умолчанию значение - [выберите поле]. если я делаю так:
menu == "[выберите поле]" или menu.equals("[выберите поле]"), то на эти условия jsp не реагирует :)
это вот во-первых.
ну а во-вторых теперь нужно все-таки сервлету отдать валидацию, что не получается.
 

Kmet

Java Team
25.05.2006
1 036
8
#3
не получается проверка на пустые поля.
пытаюсь сделать сервлет. в сервлете метод doPost, в кот пока только:
String surname = request.getParameter("surname");
String name = request.getParameter("name");
проверяйте на null и на String.isEmpty. Броузеры могут по разному передавать не заполненные поля.
в tomcat в папке WEB-INF папка classes и в ней еще папка servlets, в котором как раз EmptyFieldResume.class.
на всякий случай папку servlets запихала в папку, где jsp находятся.
для начала следует хорошо разобраться в понятиями: package, classloader. Без этого ни куда.
когда нажимаю на Submit, то у меня открывается страница, конец url которой emptyFieldResume, соответственно ошибка - не найдена (404).
потому что ты пытаешься открыть по урлу domain:port/emptyFieldResume, а надо по domain:port/context/emptyFieldResume,
где context это контекст по которому задеплоено приложение.

в общем, ладно - избавилась я от сервлета.
валидацию делаю в jsp.
resume.jsp
<%if ((surname == null)) {
%>
<form action="resume.jsp" method="post" >
различные теги
<% else { %>
<jsp:forward page="workBlank.jsp"/>
<% } %>
в общем случае скриплеты зло.
в условие добавила surname.length == 0 - заработало.
см. выше
НО. у меня есть меню выпадалка, по умолчанию значение - [выберите поле]. если я делаю так:
menu == "[выберите поле]" или menu.equals("[выберите поле]"), то на эти условия jsp не реагирует sad.gif
это вот во-первых.
все же стоит научится пользоваться дебагом. очень полезное умение=).
 
G

Guest

#4
в общем, если проверяю конкретно на jsp странице, то все работает, а вот сервлет нет.
сервлет только получает параметры, проверяет их и в зависимости от проверки, переадресовывает пользователя на соответствующую страницу, например:
getServletContext().getRequestDispatcher("/resume.jsp").forward(request, response);
у меня догадки: либо неправильный web.xml, либо неправильное использование сервлета. но вроде в сервлете так можно делать, а в web.xml тоже все вроде правильно написано. в общем, в замешательстве
 
Статус
Закрыто для дальнейших ответов.