English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод решения проблемы, когда EL-выражение на странице jsp обрабатывается как строка и значение не отображается

Во время практики я встретил ситуацию, когда выражения 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 были правильно интерпретированы.

Позже, после дополнительного изучения материалов, я узнал:

Это новая функция Jsp2.0:

Введение языка выражений (EL)

Одной из основных особенностей JSP 2.0 является поддержка языков выражений (expression language). Язык выражений JSTL позволяет удобно доступ к скрытым объектам JSP и компонентам JavaBeans с использованием теговой формы. Основные теги JSTL предоставляют функции управления потоком и циклами. Также пользовательские теги могут иметь свои функции, поэтому基本上 все функции scriptlet могут быть заменены JSP. В JSP 2.0 рекомендуется использовать EL для обеспечения более единообразного формата JSP.

В <jsp-property-group> web.xml можно контролировать, использует ли группа JSP EL, и в каждой JSP можно указать, использует ли она EL. Атрибут isELIgnored в page directive используется для указания, следует ли игнорировать. Формат:

<%@ page isELIgnored="true|false"%>

Если установлено в значение true, то выражения в JSP обрабатываются как строки. Например, следующий выражение <p>${2000 % 20}</p> при isELIgnored="true" выводится как ${2000 % 20}, а при isELIgnored="false" выводится как 100. По умолчанию в веб-контейнере isELIgnored установлен в значение false.

Хотя JSP 2.0 позволяет полностью использовать языковой выражение в JSP и избегать scriptlet, на практике, выбор подходящего способа зависит от функциональных требований программы и личных условий программиста. JSP с использованием языковых выражений более удобны и упорядочены, но из-за необходимости преобразования тегов, они могут быть медленнее при первом вызове; некоторые программисты, которые хорошо знают Java, предпочитают стиль программирования до JSP 1.2, поэтому в использовании следует выбирать подходящий метод программирования в зависимости от ситуации.

Таким образом, по умолчанию в javaee4 настройка составляет <%@ page isELIgnored="false"%>, а в javaee5 по умолчанию может быть <%@ page isELIgnored="true"%>.Таким образом, в javaee5 мы можем указать на нормальное разрешение EL-выражений, установив в jsp-странице <%@ page isELIgnored="false"%>. .

Таким образом, решение проблемы обработки EL-выражений в этом jsp-странице как строки и отображения их значений, которое я хочу предложить вам, это все, что я могу поделиться. Надеюсь, это поможет вам и希望大家多多 поддерживать руководства по крику.

Давай посмотрим!