2012-03-12 14 views
-1

私は次のサーブレットを実行します。なぜ私はorg.apache.jasper.JasperExceptionを取得していますか?

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.IOException; 

public class Controller extends HttpServlet { 
@Override 
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { 
    Bean bean = new Bean(); 
    bean.setName("Suhail Gupta"); 
    request.setAttribute("Name", bean); 
    RequestDispatcher rd = request.getRequestDispatcher("index.jsp"); 
    rd.forward(request, response); 
    } 
} 

例外:

HTTP Status 500 - 

type Exception report 

message 

descriptionThe server encountered an internal error() that prevented it from fulfilling this request. 

exception 

org.apache.jasper.JasperException: PWC6054: Cannot find any information on property 'Name' in a bean of type 'Bean' 

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.1 logs. 

が生成されます。私はこれの理由を理解していない。私は例外の理由を見つけることができません

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>JSP Page</title> 
</head> 
<body> 
    <jsp:useBean id="name" class="Bean" scope="request" /> 
    Person created by the Servlet : <jsp:getProperty name="name" property="Name" /> 
</body> 
</html> 

:後

ビーンクラスです:

public class Bean { 

private String Name = null; 

public void setName(String n) { 
    Name = n; 
} 

public String getName() { 
    return Name;   
    } 
} 

、これはindex.jspページです。

+1

クラス 'Bean'のメンバーに' Name'の代わりに 'name'を使用し、' Controller'に属性名を使用してみてください。 – Jesper

+0

@ Jesperは助けなかった –

答えて

3
  • プロパティはprivate String name小文字でなければなりません - これはJavaの大会とJavaBeansの標準
  • によって決定されたタグが小文字property="name"を使用する必要があります - JavaBeansは、再び
  • Beanの名前はNameすべきではありません、これは混乱しています。 nameBean(小文字、好ましくは)
  • クラスにはパッケージが必要です。デフォルトのパッケージは問題を引き起こします。
  • jsp:タグの代わりにEL:${nameBean.name}を使用すると、適切な値に解決されます。
+0

はい!問題は解決されます。 _(問題のセットには、デフォルトパッケージも含まれています!)_しかし、 'bean.setName(" Suhail Gupta ")によって設定された名前が' null 'になります。これの理由は何でしょうか? –

関連する問題