1

我是动态 web 项目概念的新手。我做了以下两个 JSP 和一个 java 类作为刚刚开始的实验。以下是我的代码

用户.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;
    }

}

索引.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>

但它向我显示两个值都为空。我知道它非常简单的程序。但我没有正确理解这个概念

谢谢

4

5 回答 5

1

移动

<jsp:useBean id="user" class="com.User" />
<jsp:setProperty name="user" property="*"/> 

index.jspFirst.jsp

请求参数提交给 First.jsp 而不是 index.jsp。

 <jsp:setProperty name="user" property="*"/>

使用请求参数中的属性填充用户 bean 的属性。表单被提交给接收请求参数的 First.jsp。

于 2013-06-21T04:39:55.087 回答
0

jsp:useBean在 First.jsp 中创建了一个com.User使用默认构造函数的实例,该构造函数将name和都设置id为 null。因此,当您打印它们的值时,您会得到 null。

于 2013-06-21T04:36:25.583 回答
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" />
于 2013-06-21T05:13:53.870 回答
0

您在会话中没有任何用户对象,因此您现在需要做的就是使用 jsp:setProperty标签!

useBean标签将usersession.

如果实例已经存在,它将更新旧实例。否则,它将创建一个新的用户实例并将其放入会话中。

您以前没有将userbean 放入会话中。因此创建了具有空值的新实例。

JSP 中的 Bean 处理

于 2013-06-21T04:47:05.127 回答
0

使用 JSTL 标签。它具有默认值的默认属性。如果值为 null,则将显示默认值。

于 2013-06-21T08:21:39.170 回答