为什么在JSP中获得空值?

我想使用Web表单提交一些信息,然后JSP页面将显示输入的表单信息。但是,当我单击表单中的提交按钮时,它将进入正确的JSP文件,但是所有表单值都显示为“空”。我正在使用Jersey来执行POST请求。

形式是:

<form action="/MyRestWS/rest/customer/created" method="POST">

<table border="1">

<tr>

<td>Customer name:</td>

<td><input type="text" name="name"></td>

</tr>

<tr>

<td>Customer ID:</td>

<td><input type="text" name="id"></td>

</tr>

<tr>

<td>Customer DOB:</td>

<td><input type="text" name="dob"></td>

</tr>

</table>

<br/>

<input type="submit" value="Submit">

</form>

进行请求的代码是:

@Path("/customer")

public class CustomerService {

@POST

@Consumes(MediaType.APPLICATION_FORM_URLENCODED)

@Path("created")

public Response createCustomer(@FormParam("id") int id, @FormParam("name") String name, @FormParam("dob") Date dob) {

Response r;

r = Response.ok().entity(new Viewable("/confirm.jsp")).build();

return r;

}

@GET

@Produces(MediaType.TEXT_HTML)

public Viewable displayForm() {

return new Viewable("/form.html");

}

}

显示的JSP文件为confirm.jsp,其内容为:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Your entered information</title>

</head>

<body>

<h2>

<%

out.println("You've entered the following information:");

%>

</h2>

<p>

Customer Name:

<%=request.getParameter("name")%></p>

<p>

Customer ID:

<%=request.getParameter("id")%></p>

<p>

Customer DOB:

<%=request.getParameter("dob")%></p>

</body>

</html>

如果我在浏览器中键入以下地址:

http://localhost:8080/MyRestWS/rest/customer

它将显示form.html表单。填写信息并单击“提交”后,它将转到以下地址并显示路径指定的JSP文件:

http://localhost:8080/MyRestWS/rest/customer/created

JSP文件正确显示,但是所有客户信息字段都显示为“ null”,如下所示:

You've entered the following information:

Customer Name: null

Customer ID: null

Customer DOB: null

那么,为什么在提交表单后在JSP中获得空值?我的代码有什么问题?

回答:

您正在尝试显示不再存在的请求参数。它们仅在 第一个 请求(表单提交)期间存在。

如果要 再次 显示它们 ,则 需要将它们作为请求 属性 公开给视图层。

(也就是说,如果将它们作为构造类的一部分公开,我会更高兴。)

以上是 为什么在JSP中获得空值? 的全部内容, 来源链接: utcz.com/qa/403628.html

回到顶部