2009-02-02 3 views
2

На странице JSP (index.jsp):EL в JSP остановился оценки

${requestContext.requestURL} is the URL 

просто показывает само выражение. Раньше его оценивали примерно так: «http://.../somerset/»

Я создал проект Maven с архетипом maven-archetype-webapp в Eclipse. Версия Jetty - причал 6.1.14.

Мой web.xml прост:

<web-app> 
    <display-name>Archetype Created Web Application</display-name> 
    <servlet> 
     <servlet-name>SomersetServlet</servlet-name> 
     <display-name>SomersetServlet</display-name> 
     <description></description> 
     <servlet-class>com.foo.somerset.SomersetServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>SomersetServlet</servlet-name> 
     <url-pattern>/som.do</url-pattern> 
    </servlet-mapping> 
</web-app> 

ответ

8

См Javascript String.replace(/\$/,str) works weirdly in jsp file для некоторых возможных причин.

Ваш web.xml должен содержать ссылку на веб-app_2_4.xsd схемы, как

<web-app 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/web-app_2_4.xsd" 
     version="2.4"> 

Это позволяет сервлет 2,4 и 2,0 JSP обработки, которая включает в себя EL.

Btw requestContext недействителен неявный объект.

+0

Это работает! Раньше это сработало, и когда я переехал в Maven, автогенератор Maven архетипа забыл добавить эти атрибуты! Благодаря! Тем не менее, mvn jetty: запустить woked при первом запуске, но в Eclipse требуется несколько попыток работы EL. – yogman

1

Некорректно совпадающие котировки могут вызвать такое поведение, когда выражение просто получает лечение в виде строки. Ваша IDE обычно выделяет это другим цветом, если это так.

0

Убедитесь, что у вас есть директива, и другие библиотеки, которые вы используете включены

<jsp:root ..... 

Подробнее об определении здесь

http://java.sun.com/products/jsp/tags/12/syntaxref123.html

+0

Насколько я знаю, EL работает без объявления какого-либо taglib, на самом деле он не использует taglib. И, <% = 10 * 20%> правильно оценивает до 200. – yogman

Смежные вопросы