English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
自分で練習しているときに、EL表現が文字列として処理され、正しく解析されない現象に遭遇しました。当時のプロジェクトではJavaee5、
web.xml
<web-app 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表現が解析されず、文字列として処理されたままです。
後にweb.xmlを変更し、
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
再デプロイし、Tomcatを起動すると、EL表現が正しく解析されたことを確認しました。
後にさらに情報を収集すると、
これはJsp20の新しい機能:
二)表現言語(EL)の導入
JSP 20の主要な特徴は、表現言語(expression language)をサポートしていることです。JSTLの表現言語は、タグ形式でJSPの隠しオブジェクトやJavaBeansコンポーネントを簡単にアクセスでき、JSTLのコアタグは、プロセスとループ制御機能を提供しています。カスタムタグもカスタム関数の機能を持っているため、基本的にすべてのseriptletが実現できる機能はJSPで代替できます。JSP 2.0では、JSPのフォーマットを一貫させるためにELの使用を推奨します。
web.xmlの<jsp-property-group>内で、一つのJSPがELを使用するかどうかを制御できます。各JSPでも、そのJSPがELを使用するかどうかを指定できます。page directiveのisELIgnored属性は、無視するかどうかを指定するために使用されます。フォーマットは:
<%@ page isELIgnored="true|false"%>
真に設定された場合、JSP内の表現は文字列として処理されます。例えば以下のこの表現<p>${2000 % 20}</p>isELIgnoredが"true"の時のオプションとして${2000 % 20}が、isELIgnoredが"false"の時のオプションとして100では、WebコンテナのデフォルトのisELIgnoredは"false"です。
JSP 2.0は、JSPで完全に表現言語を使用してscriptletを避けることができます。実際のプログラミングでは、プログラムの機能要件とプログラマーの自身の条件に応じて適切な方法を選択する必要があります。表現言語を使用するJSPは便利で整理がしやすいですが、タグを変換する必要があるため、初めて呼び出されたときには少し遅くなる場合があります。Javaに比較的詳しいプログラマーはJSP 1.2以前のプログラミング方法では、使用中に地域に応じて適切なプログラミング方法を選択する必要があります。
つまり、javaee4では、デフォルトの設定は<%@ page isELIgnored="false"%>であり、javaee5では、デフォルトの設定が<%@ page isELIgnored="true"%>である可能性があります。したがって、javaee5jspページで<%@ page isELIgnored="false"%>を設定することで、EL表現の通常の解析を指定できます。 。
以上のこのjspページでEL表現が文字列として処理され値が表示されない問題の解決方法は、編集者が皆さんに提供するすべての内容です。皆さんに参考になれば幸いです。また、呐喊チュートリアルを多くのサポートをお願いします。