[英]set Java class Object values into JSP Page
我想将 Java 类对象值设置到 JSP 页面中。 我的 Test_Object 代码
public class Test_Object {
public String email;
public String first_name;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirst_name() {
return first_name;
}
public void setFirst_name(String first_name) {
this.first_name = first_name;
}
}
我的 test.jsp 页面
<%@page import="test.io.Test_Object"%>
<%@ 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>TEST</title>
</head>
<body>
<form action="loginServlet" method="post">
<table>
<tr>
<td>First Name :
<td><input type="text" value="" name="txtFirstname"
value='<%=((Test_Object) request.getAttribute("reqObj")).getFirst_name()%>' /></td>
</tr>
<tr>
<td>Email :</td>
<td><input type="text" name="txtEmail"
value='<%=request.getParameter("email")%>' /></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>
我的 servlet 代码
String jb = "{\"email\":\"test@xyz.com\",\"fname\":\"test01\"}";
JSONObject jsonObject = new JSONObject(jb);
Test_Object obj = new Test_Object();
obj.email=jsonObject.getString("email");
obj.first_name=jsonObject.getString("fname");
request.setAttribute("reqObj", obj);
RequestDispatcher view = request.getRequestDispatcher("/test.jsp");
view.forward(request, response);
但是当我重定向到 test.jsp 页面时,TextBox 中没有值显示。 我正在将 Eclipse Mars 2 与 Java 一起使用。
问题可能在于您发送请求的方式。 在您的 Servlet 中,您将请求分派到/otn.jsp
页面。 但是您正在尝试读取放在test.jsp
页面中的请求范围中的对象的属性。 因此,您必须执行以下操作:
在 Servlet 代码中:
RequestDispatcher view = request.getRequestDispatcher("/test.jsp");
在test.jsp
页面中,将input
元素更改如下:
<input type="text" value="${reqObj.first_name}" name="txtFirstname"/> <input type="text" value="${reqObj.email}" name="txtEmail" />
我在这里使用表达式语言,并假设您使用的是当前的 Web 容器之一,例如 Tomcat 版本 7 及更高版本。
一些小意见:
JSONObject
创建JSONObject
?Test_Object
命名而不是下划线:使用TestObject
代替Test_Object
和firstName
代替first_name
。 在这里,您将找到 Java 的命名约定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.