从servlet重定向回到带有空文本字段的jsp

时间:2015-01-04 13:49:16

标签: jsp servlets

我面临的情况是我有一个JSP表单连接到servlet和一个提交按钮,我在servlet页面也有一个验证程序,当一些验证被违反时,我想回到具有表单的jsp,但是当我执行所有文本字段时都是空的。 我该怎么做 ? 我的意思是如何回到jsp页面并且文本字段在提交之前具有相同的值?

  messages.put("Applied", "Sorry, but you already Applied");
        request.getRequestDispatcher("/Nurses.jsp").forward(request, response);

任何人都可以尽快帮助我。

5 个答案:

答案 0 :(得分:0)

您正在向jsp页面发送相同的请求对象。使用此请求对象再次填写所有字段。

另一个选择是使用ajax进行服务器端验证。

答案 1 :(得分:0)

您可以使用javascript历史记录,只需在无效数据的情况下打印,页面将在客户端返回。

<script>
     window.history.go(-1);
</script>

答案 2 :(得分:0)

这是servlet + JSP中的常见用例。这就是为什么请求中存在属性的原因。

转发重定向不同且不得在此处使用)之前,您应该在servlet中存储请求属性中的有趣值到JSP。

在JSP中,您只是尝试从请求属性中获取值。如果它们存在,请使用它们(当从验证错误转发时),如果不存在(正常情况),您将获得将在JSP中显示为空的空值。

(您可以使用<jsp:usebean>获取请求属性)

答案 3 :(得分:0)

当您使用相同的请求时响应对象,所以你将在同一个会话中。

1)将所有表单参数(JSP FORM)的值存储到Servlet中的HttpSession对象。

HttpSession session = request.getSession();

并使用session.setAttribute()方法保存所有表单元素值

2)使用JSP中的HttpSession对象在JSP中检索所有字段值

Retrieve  form element value using session.getAttribute()

由于 SP

答案 4 :(得分:0)

由于您从servlet到jsp的转发请求,请尝试使用EL&amp; jsp中的taglibs,例如:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!-- ${param.name} will give the value which was submitted -->
<form>
  User name: <input type="text" name="user" value="${param.user}"/>
  <br/>
  Gender:
    <input type="radio" name="gender" value='m'
    <c:if test="${'m' eq param.gender}"> checked='checked' </c:if>
     /> Male
    <input type="radio" name="gender" value='f'
    <c:if test="${'f' eq param.gender}"> checked='checked' </c:if>
     /> Female
</form>