web-dev-qa-db-ja.com

EclipseがJSTLを使用して最終的にGAE / Jで機能するためには、どのJARファイルが必要ですか?

私はJSTLをEclipseの下で(そして最終的にはGAE/Jの下で)動作させることを認めたいと思っているよりも長い間、努力してきました。 Eclipse、Google App Engine Extension for 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>
14
user45492

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>

または、servletcontainerがサポートしている場合は、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>

そうしないと、すべてがサポートされていない方法にフォールバックし、taglibはそのように壊れる可能性があります。

また、クラスパス(特に/WEB-INF/libフォルダ)内をさまよっているtldファイルが緩んでいないことを確認してください。これらのファイルはJARファイルのファイルと衝突します。また、web.xmlで手動でTLDを定義していないことも確認してください。

6
BalusC

同じ問題があり、単にtaglib定義の接頭辞= "c" 最後にを付けました

前:

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

後:

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

そして、すべての警告がEclipseから消えます。

26
user1716015

Maven POMでこの依存関係を指定するだけです:

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

私のコードでは、これにより、次のJSP taglibが機能するために必要なすべてが提供されました。

<%@taglib uri="http://Java.Sun.com/jsp/jstl/core" prefix="c"%>
8
Jubz

taglibs-standard-impl-1.2.5 from Apacheをプロジェクトのビルドパスに追加します。これで問題が解決する場合があります。

0
Praveer Satyam

私が知る限り、jstl.jarとstandard.jarが必要です。それらをWEB-INF/libの下に置きます。

0
kukudas

jstl-1.2-sources.jarをTomcat\libディレクトリに追加します

0
ZEESHAN KHAN