0

私は次のコードを書きました:

Animal.java

package com.MyPack;

public class Animal 
{
    private String name;

    /* getter and setter methods */
}

Zoo.java

package com.MyPack;

public class Zoo 
{   
    private String address;
    private Animal animal;

    /* Getter and Setter Method */
}

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>
        <jsp:useBean id="animal" class="com.MyPack.Animal" scope="request">
            <jsp:setProperty name="animal" property="name" value="Tiger" />
        </jsp:useBean>

        <jsp:useBean id="zoo" class="com.MyPack.Zoo" scope="request">
            <jsp:setProperty name="zoo" property="address" value="Bannerghatta" />
            <jsp:setProperty name="zoo" property="animal" value="${animal}" />
        </jsp:useBean>

        <jsp:getProperty name="zoo" property="${zoo.address}" />
    </body>
</html>

ELを使用して住所を印刷していますが、アニマルクラスから名前を印刷しようとして${zoo.animal.name}いますが、エラーが発生しています。

4

1 に答える 1

0

私はコードだと思います:

<jsp:getProperty name="zoo" property="${zoo.address}" />

次のようにする必要があります。

<jsp:getProperty name="zoo" property="address" />

また、JSP のどこに EL を記述したかわかりません${zoo.animal.name}。また、エラー スタック トレースも役立ちます。

編集

クラス内のプロパティの実際の名前が必要なため、式を評価しないEL属性で s を使用することはできません。また、評価したとしても、属性プロパティは となります。property="${zoo.address}"Zooproperty="${zoo.address}"property="Bannerghatta"

したがって、私の提案は、 を使用ELしてアドレスを ( ${zoo.address}) として表示するか、標準アクションを使用してアドレスを として表示する<jsp:getProperty name="zoo" property="address" />ことです。両方を混在させることはできません。

EL以下のチュートリアルを実行して、JSP 標準アクションの概念をよく理解することを強くお勧めします。

  1. JSP と Java Bean
  2. JSP 式言語、別名 JSP EL
于 2013-02-08T08:30:59.500 に答える