JSPの次のコードが正常に動作している理由は分かりませんが、Head first bookに記載されているように、コンパイル時エラーが表示されます。標準の動作
<html><body>
<jsp:useBean id="person" type="foo.Person" scope="request">
<jsp:setProperty name="person" property="name" value="Fred"/>
</jsp:useBean>
<jsp:getProperty name="person" property="name"/>
</body></html>
Personクラスのコードは次のとおり
package foo;
public class Person extends foo.Person1
{
private String s;
public void setEmpID(String s)
{
this.s=s;
}
public String getEmpID()
{
return s;
}
}
とサーブレットクラスにfoo.Personをインスタンス化するためのコードと、要求スコープ内の属性「人」として設定され:
Person1 p=new Person();
p.setName("Greenhorn");
request.setAttribute("person",p);
およびコードPerson1 beanクラスは、
です。なぜ機能していますか?なぜそれは何かエラーを表示していないのですか?本は間違っていますか?
ご意見ありがとうございます。
しかし、上記のコードでは、JSPは "foo.Person"という値を持つ型属性を持っていますが、サーブレットでは "foo.Person1 p = new foo.Person();"と実際に宣言されています。 これは間違っているはずだが、Tomcatで実行したときではないことを意味する。 – Greenhorn