разработка пользовательских тегов - атрибут не работает - PullRequest
0 голосов
/ 25 августа 2010

Я пытаюсь написать пользовательскую вкладку с атрибутами, но не могу заставить класс обработчика тега прочитать значения атрибута.Используя <%= %>, я могу получить objValue для работы.Но objValue2 не оценивается при использовании ${}.

jsp:

<% CommitmentItem ci = (CommitmentItem) request.getAttribute("commitmentItem"); %>
<myTag:calPOP objValue="<%= ci.getSource() %>" objValue2="${commitmentItem.source}" > </myTag:calPOP>

Обработчик тегов:

<getters & setters here>

public int doStartTag() throws JspException {
 pc.setAttribute("objValue2", objValue);
 System.out.println("Object Value = " + objValue );
 System.out.println("Object2 Value = " + objValue2 );

Вывод на консоль:

Object Value = Contract W23AG-23
Object2 Value = ${commitmentItem.source}

Ответы [ 2 ]

0 голосов
/ 26 августа 2010

Если вы пишете в JSP1.2, то выражения EL не интерпретируются непосредственно контейнером.Сами теги JSTL справляются с ними.Вы можете попробовать решение, описанное здесь здесь По сути, оно включает использование метода ExpressionUtil.evalNotNull (часть библиотеки JSTL)

Еще одна вещь, которая может работать, но потенциально может сломать другие вещи:

<%@ page isELIgnored="false" %>

Если это версия Tomcat, которая понимает EL, но отключена через настройки web.xml, это включит оценку EL только для этой страницы.Конечно, любые выражения EL в тегах JSTL впоследствии будут генерировать исключения, поскольку теги JSTL1.0 не принимают выражения времени выполнения.

0 голосов
/ 25 августа 2010

Включили ли вы свой web.xml для JSP 2.0 и язык выражений?Если ваш web.xml использует более старый DTD, сервер отключит язык выражений, поэтому выражения, такие как $ {foo}, не будут расширены.

Попробуйте обновить пространство имен web.xml, чтобы включить JSP 2.0

<?xml version="1.0" encoding="UTF-8"?>
<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">

 <!-- etc -->

</web-app>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...