Какие JAR-файлы необходимы Eclipse для использования JSTL, чтобы он в конечном итоге работал на GAE / J? - PullRequest
14 голосов
/ 29 октября 2010

Я пытался дольше, чем хотелось бы признать, заставить JSTL работать под Eclipse (и, в конечном счете, под GAE / J). Я скачал Eclipse, расширение Google App Engine для Eclipse и JSTL (http://download.java.net/maven/1/jstl/jars/ - jstl-1.2.jar находится в каталоге WEB-INF \ lib).

Мой код ниже вместе с выводом:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<HTML><HEAD><TITLE>Test Page</TITLE></HEAD><BODY>
Test Page

<c:set var="myvar" value="3"/>

</BODY></HTML>

Я получаю ошибку:

The tag handler class for "c:set" (org.apache.taglibs.standard.tag.rt.core.SetTag) was not found on the Java Build Path 
test.jsp
[my app's path and name]
line 8
JSP Problem

Из последнего поста на этой странице я не думаю, что мне нужен standard.jar (http://forums.sun.com/thread.jspa?threadID=701267), и в любом случае я не смог найти его на сайте Oracle download.java.com вместе с JSTL JAR.

РЕДАКТИРОВАТЬ 4: Работает сейчас - Шаги:
1) Используйте версию Apache
2) На самом деле включите файл jar в путь сборки (щелкните правой кнопкой мыши по проекту eclipse и выберите Свойства -> Путь сборки Java -> Библиотеки -> Добавить папку классов ...; war / WEB-INF / lib, очевидно, нет на путь сборки по умолчанию)
3) Добавьте файл c.tld в war / WEB-INF / tld

Сделайте ваш web.xml похожим на:

<\?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>JSTLExample</display-name>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
<jsp-config>
    <taglib>
        <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
        <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
    </taglib>
</jsp-config>  
</web-app>

Содержимое тестового файла jsp:

 <?xml version="1.0" encoding="UTF-8" ?>
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 <!-- Taglib -->
 <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Test Apache ServiceMix with JSTL</title>
 </head>
 <body>

 This is a testpage.

 <%= "hello" %>
 <c:forEach var="i" begin="1" end="10" step="1">
 <c:out value="${i}" />

 <br />
 </c:forEach>


 </body>
 </html>

Ответы [ 6 ]

25 голосов
/ 12 января 2013

У меня была та же проблема, и я просто поставил префикс = "c" в конце определения taglib

до:

<%@ taglib  prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

после:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

И все предупреждения исчезают из Затмения.

7 голосов
/ 02 ноября 2012

Вам нужно только указать эту зависимость в POM Maven:

<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

В моем коде это обеспечивало все необходимое для работы следующей JSP-библиотеки тегов:

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
6 голосов
/ 29 октября 2010

Убедитесь, что ваше web.xml корневое объявление соответствует как минимум Сервлет 2.4.

<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">

    <!-- Config here. -->

</web-app>

Или, если ваш сервлет-контейнер поддерживает его, предпочтите 2.5:

<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_2_5.xsd"
    version="2.5">

    <!-- Config here. -->

</web-app>

O, если он поддерживает последнюю версию 3.0

<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">

    <!-- Config here. -->

</web-app>

В противном случае все упадет до наименее поддерживаемого режима и теги могут сломаться таким образом.

Также убедитесь, что у вас нет свободныхФайлы tld, блуждающие в пути к классам (в частности, в папке /WEB-INF/lib), будут совпадать с файлами в файлах JAR.О, также убедитесь, что вы не определили вручную tlds в web.xml, держите его в чистоте.

0 голосов
/ 02 апреля 2019

добавьте jstl-1.2-sources.jar в каталог Tomcat \ lib

0 голосов
/ 31 мая 2015

Добавьте taglibs-standard-impl-1.2.5 из Apache в путь сборки проекта.Это может решить проблему.

0 голосов
/ 29 октября 2010

Насколько я знаю, вам нужны jstl.jar и standard.jar.Поместите их в WEB-INF / lib.

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