使用jsp显示空结果

时间:2013-06-21 04:27:28

标签: java jsp java-ee web-applications

我是动态网络项目概念的新手。我已经将以下两个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>

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

谢谢

5 个答案:

答案 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的实例,该构造函数将nameid都设置为null。因此,在打印其值时,您将获得null。

答案 2 :(得分:0)

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

useBean代码会在user中查找“session”的实例。

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

您以前没有将user bean放在session中。因此,将使用null值的新实例进行处理。

Bean Processing in JSP

答案 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,则将显示默认值。