2011-06-29 22 views
1

我有一個簡單的HTML頁面,在這裏我通過兩個數值,一個名稱(String)&夜(int)的數量到一個jsp頁面。在那裏我使用jsp:useBean標籤& a jsp:setProperty標籤。當我用<jsp:getProperty name="myRes" property="name">替換<%= myRes.getName() %>時,它給出了一個很長的例外報告。但是當我重新加載頁面兩次時,它會提供正確的輸出。例外情況報告如下。JSP:的getProperty給「據TLD,標記JSP:的getProperty必須是空的,但不是」例外

 
org.apache.jasper.JasperException: /hotel_jsp_bean_one.jsp(13,30) According to TLD, tag jsp:getProperty must be empty, but is not 
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41) 
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) 
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132) 
    org.apache.jasper.compiler.Parser.parseBody(Parser.java:1631) 
    org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002) 
    org.apache.jasper.compiler.Parser.parseGetProperty(Parser.java:905) 
    org.apache.jasper.compiler.Parser.parseStandardAction(Parser.java:1132) 
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1449) 
    org.apache.jasper.compiler.Parser.parse(Parser.java:138) 
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239) 
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:197) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:372) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:352) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:339) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 

我bean類是:

package hotel; 

public class Hotel 
{ 
    private String name; 
    private int nights; 

    public Hotel() 
    { 
     this.name = "<NOT SPECIFIED>"; 
     this.nights = -1; 
    } 

    public void setName(String name) 
    { 
     this.name = name; 
    } 

    public String getName() 
    { 
     return this.name; 
    } 

    public void setNights(int nights) 
    { 
     this.nights = nights; 
    } 

    public int getNights() 
    { 
     return this.nights; 
    } 

然後我的第一個HTML頁面是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Hotel Califona Reservation</title> 
</head> 

<body> 
    <h2 align="center">Welcom To The Hotel Califonia</h2> 
    <br/> 
    <br/> 
    <form method="post" action="hotel_jsp_bean_one.jsp"> 
     <label>Enter your name : <input type="text" name="name"/> 
     <br/> 
     <label>How many nights : </label><select name="nights"> 
              <option value="1">1</option> 
              <option value="2">2</option> 
              <option value="3">3</option> 
              <option value="4">4</option> 
              </select> 
     <br/> 
     <input type="submit" name="submit" value="Reserve"/> 
    </form> 
</body> 
</html> 

然後我最後的JSP頁面:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Hotel Califonia Reservation</title> 
</head> 

<jsp:useBean id="myRes" class="hotel.Hotel" scope="page"/> 
<body> 
    <jsp:setProperty name="myRes" property="*"/> 

    <h3 style="color:#0000FF"><jsp:getProperty name="myRes" property="name"> is staying for <jsp:getProperty name="myRes" property="nights"> nights</h3> 
</body> 
</html> 

請原諒我因爲我忽略了任何不便的錯誤。任何幫助將不勝感激。提前致謝。

回答

8

這是無效的:

<jsp:getProperty name="myRes" property="name"> is staying for <jsp:getProperty name="myRes" property="nights"> 

它應該是:

<jsp:getProperty name="myRes" property="name"/> is staying for <jsp:getProperty name="myRes" property="nights"/> 

注意在每次的getProperty年底收盤/

+0

thanx很多.... – Ramila

+0

Phew!這些錯誤很難察覺。像螞蟻一樣,它們很小但是咬人 –

0

我今天在JSP/Servlets類中遇到了這個問題。我相信解決這個問題的方法是在最終的JSP頁面中放置一個/以關閉標記。

我忽略了關閉標籤,放入/之後,我的頁面完美無缺地工作。

相關問題