0

JSP のコンパイル中に重複変数エラーが発生しています。助けてください。属性のスコープ (セッションとリクエスト) が異なるのに、なぜこれを使用できなかったのですか? id が異なる必要があると予想していますが、スコープが異なると予想されるのはなぜですか?

HttpSession hs = request.getSession();
hs.setAttribute("GrandParents",new GrandParents());

request.setAttribute("GrandParents",new GrandParents());

 <jsp:useBean id="GrandParents" type="test.bean.GrandParents" class="test.bean.GrandParents" scope="request"/>
     Name in JSP Request tag is: <jsp:getProperty name="GrandParents" property="name" />

<jsp:useBean  id ="GrandParents" type="test.bean.GrandParents" class="test.bean.GrandParents" scope="session"/>
 Name in JSP Request tag is: <jsp:getProperty name="GrandParentss" property="name" />
4

1 に答える 1

2

idBean を参照するために使用される変数の名前を指定するために使用されます。したがって、上記のコードは次と同等です

GrandParents GrandParents = (GrandParents) request.getAttribute("GrandParents");
GrandParents GrandParents = (GrandParents) session.getAttribute("GrandParents");

これは、同じ名前の 2 つの変数を定義しているため、無効です。

とにかく、jsp:useBean は何年も使用しないでください。JSP EL と JSTL を学び、簡単に実行する

Name in JSP Request is: ${requestScope.GrandParents.name}
Name in JSP Session is: ${sessionScope.GrandParents.name}

また、Java ローカル変数と同じ方法で属性に名前を付ける規則もあり、小文字で始めます。

于 2013-04-17T07:02:54.297 に答える