我是动态网络项目概念的新手。我已经将以下两个JSP和一个java类作为刚开始实验。 以下是我的代码
user.java
package com;
public class User {
private String name;
private int Id;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
的index.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>Insert title here</title>
</head>
<body>
<form action="First.jsp">
name<input type="text" name="name" />
id<input type="text" name="Id" />
<input type="submit" value="SUBMIT" />
<jsp:useBean id="user" class="com.User" />
<jsp:setProperty name="user" property="*"/>
</form>
</body>
</html>
再次使用First.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>Hello</title>
</head>
<body>
<jsp:useBean id="user" class="com.User" />
user is :<%= user.getName() %><BR>
Id is :<%= user.getId() %><BR>
</body>
</html>
但它显示我对这两个值都是空的。我知道它非常简单的程序。但我没有正确理解这个概念
谢谢
答案 0 :(得分:1)
移动
<jsp:useBean id="user" class="com.User" />
<jsp:setProperty name="user" property="*"/>
从 index.jsp 到 First.jsp
请求参数提交给First.jsp而不是index.jsp。
<jsp:setProperty name="user" property="*"/>
使用请求参数中的属性填充用户bean的属性。表单将提交给First.jsp,后者接收请求参数。
答案 1 :(得分:0)
您在First.jsp中的jsp:useBean
使用默认构造函数创建com.User
的实例,该构造函数将name
和id
都设置为null。因此,在打印其值时,您将获得null。
答案 2 :(得分:0)
您在会话中没有任何用户对象,因此您现在需要做的就是使用jsp:setProperty
标记!。
useBean
代码会在user
中查找“session
”的实例。
如果实例已经存在,它将更新旧实例。否则,它将创建一个新的用户实例并将其放入会话中。
您以前没有将user
bean放在session中。因此,将使用null值的新实例进行处理。
答案 3 :(得分:0)
您正在向First.jsp提交表单数据。但是在First.jsp中没有处理/处理请求参数的地方。所以,在First.jsp中尝试一下:
<jsp:useBean id="user" class="com.User" scope = "request" />
<jsp:setProperty property="name" value="<%= request.getParameter("name") %>"name="user" />
<jsp:setProperty property="Id" value="<%= request.getParameter("Id") %> name="user" />
Name: <jsp:getProperty property = "name" name="user" />
Id : <jsp:getProperty property = "Id" name="user" />
答案 4 :(得分:0)
使用JSTL标记。它具有默认值的默认属性。如果value为null,则将显示默认值。