0

JSTLとarrayListに関連するすべての投稿を調べましたが、それでも解決策が見つかりませんでした。

taglibを使用してjspファイルに対してArrayListを反復しようとしています。ビルドパスに最新のjstl1.2jarを含めました。taglibを適切に構成しました。

しかし、それでも使用する行の前でエラーが発生します

 <c:forEach>

鬼ごっこ。それは言う

 <c:foreach>not recognized!, 

はい、forEachに「e」が付いたエラーが表示されています。

以下の私のコードを見つけてください。

コントローラーコード:

   List<String> rolesList = new ArrayList<String>();
   rolesList.add(ga.getAuthority());

JSPコード:

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

   <select>
      <c:forEach items="${rolesList}" var="role">
             <option>${role}</option>
        </c:forEach>
    </select> 
4

3 に答える 3

0

jspにjsfを含めると、同じ問題に直面します。

次に、最新のjstl jarをダウンロードし、プロジェクトlibに含めます。

次に、ヘッダーに以下のコードを追加しました

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

実行時に配列リストが表示されないため、$を#に変更しました。コードを変更しました。

あなたのコード

<select>
      <c:forEach items="${rolesList}" var="role">
             <option>${role}</option>
        </c:forEach>
</select> 

私はに変わりました

 <select>
      <c:forEach var="list" items="#{Test.rolesList}" var="role">
             <option>${list.role}</option>
        </c:forEach>
</select>

注:@ManagedBean(name="Test")テストはバックビーンコード のManagedbean です

ありがとうございました

于 2012-11-07T09:52:41.640 に答える
0

RUNTIME クラスパスに jstl 1.2 jar がありますか? それが重要です!

于 2012-04-18T06:45:18.690 に答える
0

ビルド パスに最新の jstl 1.2 jar を含めました。

これは完全に正しいアプローチではありません。

Eclipse を使用していると仮定すると、JAR ファイルはプロジェクトの/WEB-INF/libフォルダーにドロップする必要があります。本当にこれ以上何もする必要はありません。プロジェクトのBuild Pathプロパティをいじる必要はありません。問題を「修正」するために、そこで行ったことをすべて元に戻す必要があります。

/WEB-INF/libなんらかの理由でどうしても JAR をプロジェクトのフォルダーの外に置く必要がある場合は、[ビルド パス]プロパティを編集するのではなく、[展開アセンブリ]プロパティを編集する必要があります。これにより、JAR も実際に/WEB-INF/libビルドおよびデプロイされた WAR に含まれるようになります。

于 2012-11-07T19:52:10.067 に答える