0

私は websphere 8 と RAD 8 を使用しており、このスクリプトレットは正しい値を出力します。

<%= ansokanInfo.getPSystem() %>

しかし、ELを使用すると何も出力されません:

${ansokanInfo.PSystem}

${との間に何でも書くこと}ができますが、レンダリングされません。私は何を間違っていますか?EL式を有効にするにはどうすればよいですか? これも機能していません:

<c:out value="${ansokanInfo.PSystem}" />

しかし、これは機能しています:

<c:forEach var="i" begin="1" end="5" >     <c:out value="${i}" />    </c:forEach> 

私の web.xml は次のように始まります。

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
4

1 に答える 1

2

スクリプトレットと EL は同じ変数スコープを共有しません。スクリプトレット変数は JSP 本体で宣言されますが、EL 変数はページ、リクエスト、セッション、またはアプリケーション スコープの属性として設定されることになっています。

したがって、ansokanInfoEL で使用できるようにするには、それらのスコープのいずれかに設定する必要があります。それがリクエスト スコープのデータを表していると仮定すると、次のようになります。

request.setAttribute("ansokanInfo", ansokanInfo);

この変数の最初の EL 評価の前に、スクリプトレットでこれを行うことができます。しかし、より賢明なのは、前処理サーブレットでそれを行うことです。

概念を適切に学習して理解するには、必須の主題に関する wiki ページを確認してください。

于 2012-05-22T04:50:11.613 に答える