質問

私は 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">
役に立ちましたか?

解決

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

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

request.setAttribute("ansokanInfo", ansokanInfo);

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top