ここでは多くの賢明な人によると、の代わりにEL変数:
${var}
の出力を使用したいと思います。ルートjspページの開始時にELとJspは定数文字列を示しますが、変数を表示することはできません
<web-app 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_3_0.xsd"
version="3.0" metadata-complete="true" id="WebApp_ID">
...
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-enabled>true</el-enabled> // IntelliJ says these
<scripting-enabled>true</scripting-enabled> // two tags are not allowed here
</jsp-property-group>
</jsp-config>
とJSPページに含ま:web.xmlに
:
はELをオンにするには、私が使用し<%@ page isELIgnored="false" %>
をしかし、私が含まれているページやルートページで使用すると、
<%
String mapName = request.getParameter("mapName");
Map<String,String> map = (Map<String,String>) request.getAttribute(mapName);
%>
${map.get("header")}
${"-?-"}
<%System.out.println("header = " + map.get("header"));%>
の場合、最初の${}
は出力を行いません。もう1つは正常に動作し、println()
もOKを出力します。
${var}
の構文解析にどのようにELを使用できますか?
可能な複製について。 @BalusCで言及した質問は、興味深いですが、非常に異なっている:
- これは、Javaの変数と定数の比較可能な行動についてではなく、唯一、すでに
request.attributes
またはrequest.parameters
で記述された変数は、スクリプトレット。 - 答えとともに、それはすべてJSTLに関するものです。今、2017年にJSTLなしでELを使っています。私は大規模なプロジェクトに取り組んでおり、それについていくつかの論文を書くことなく、使用された技術を追加することはできません!
ので、@ElMahdiBenzekriの答え下記これは、私にとって非常に便利です(私は彼から少しより多くの情報を取得したい)とBalusCで述べた質問と回答、両方ともに非常に興味深いものになることがあり自己教育のセンスは、申し訳ありませんが、私の問題は絶対に役に立たない。
「をマップ」は既にリクエスト属性から得ているJavaの変数です。内容を正しく表示するprintln()に注目してください。私は地図をどのように入手したのか、質問コードに入れました。 – Gangnus
私はここで、$ {}の構築がjava変数を読み込むために働くことを読んでいます。それは真実ではありませんか?とにかく、JSPページの値を取得するための私の方法のために新しいと+1してくれてありがとう。 – Gangnus