Java 使用jsp显示空结果
我对动态web项目的概念还不熟悉,我做了以下两个JSP和一个java类作为刚刚开始的实验。 下面是我的代码 user.javaJava 使用jsp显示空结果,java,jsp,jakarta-ee,web-applications,Java,Jsp,Jakarta Ee,Web Applications,我对动态web项目的概念还不熟悉,我做了以下两个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; }
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
在此处插入标题
名称
身份证件
同样是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>
你好
用户是:
Id为:
但这两个值都显示为null。我知道这是一个非常简单的程序。但我没有正确理解这个概念
谢谢您的
jsp:useBean
在First.jsp中使用默认构造函数创建com.User
的实例,该构造函数将name
和id
都设置为null。因此,当您打印它们的值时,您的jsp:useBean
在First.jsp中使用默认构造函数创建com.User
的实例,该构造函数将name
和id
都设置为null。因此,当您打印它们的值时,会得到null。Move
<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,它接收请求参数。Move
<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,它接收请求参数。会话中没有任何用户对象,因此现在需要做的就是使用
jsp:setProperty
tag
useBean
标记将在会话中查找“user
”的实例
如果实例已经存在,它将更新旧实例。否则,它将创建用户的新实例并将其放入会话中
您以前没有将用户
bean放入会话中。因此会创建具有空值的新实例
会话中没有任何用户对象,因此现在只需使用jsp:setProperty
tag
useBean
标记将在会话中查找“user
”的实例
如果实例已经存在,它将更新旧实例。否则,它将创建用户的新实例并将其放入会话中
您以前没有将用户
bean放入会话中。因此会创建具有空值的新实例
您正在向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" />
您正在向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" />
使用JSTL标记。它具有默认值的默认属性。如果值为空,则将显示默认值 使用JSTL标记。它具有默认值的默认属性。如果值为空,则将显示默认值 您是否在某处设置属性中创建了用户实例?首先将变量“int Id”重命名为“int Id”您是否在某处设置属性中创建了用户实例?首先将变量“int Id”重命名为“int Id”