2013-06-21 57 views
1

我剛剛接觸動態web項目的概念。我剛剛做了以下兩個JSP和一個java類作爲剛剛開始的實驗。 以下RAE我的代碼使用jsp顯示空值結果

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> 

但它顯示我空兩個values.I知道它很容易。但節目我沒有得到正確的理念

感謝

+0

您是否在某處設置屬性中創建了用戶實例? – nachokk

+0

首先將變量「int Id」重命名爲「int id」 –

回答

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。

0

jsp:useBean在First.jsp創建的使用默認的構造函數com.User一個實例,它將nameid都設置爲空。因此,打印它們的值時會得到空值。

0

您在會話中沒有任何用戶對象,因此您現在需要做的就是使用jsp:setProperty標記!

useBean標籤將在session中查找「user」的實例。

如果實例已經存在,它將更新舊實例。否則,它將創建一個新的用戶實例並將其放入會話中。

您之前並未將user bean放入會話中,因此創建了具有空值的新實例。

Bean Processing in JSP

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" /> 
0

使用JSTL標記。它具有默認值的默認屬性。如果value爲null,則會顯示默認值。