読者です 読者をやめる 読者になる 読者になる

clock-up-blog

go-mi-tech

Tomcat プロジェクトへの JSTL の導入

Java Tomcat JSP JSTL

覚書。レガシー。

1.1.2 の場合


standard.jar, jstl.jar をプロジェクト内の WEB-INF/lib フォルダにコピー
f:id:kobake:20150128222935p:plain

1.2.1 の場合 (Tomcatサイトから入手する場合)

  • Apache Tomcat - Apache Taglibs Downloads
    • taglibs-standard-impl-1.2.1.jar … rt.core等 (OutTag, ForEachTag等)
    • taglibs-standard-jstlel-1.2.1.jar … el.core等 (OutTag, ForEachTag等)
    • taglibs-standard-spec-1.2.1.jar … jstl.core等 (LoopTag等)


taglibs-standard-impl-1.2.1.jar, taglibs-standard-jstlel-1.2.1.jar, taglibs-standard-spec-1.2.1.jar をプロジェクト内の WEB-INF/lib フォルダにコピー

1.2.1 の場合 (JSTLサイトから入手する場合)


javax.servlet.jsp.jstl-1.2.1.jar, javax.servlet.jsp.jstl-api-1.2.1.jar をプロジェクト内の WEB-INF/lib フォルダにコピー

利用

値の設定

Servlet 側コード例。

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException{
        // 値の設定
        String hoge = "XX<a>YY";
        req.setAttribute("hoge", hoge);
        // JSP表示
        req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req, resp);
    }
}

値の表示

jsp 側コード例。taglib のタグを入れておく必要がある。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<b>
<c:out value="${hoge}"/>
</b>

結果

f:id:kobake:20150128223616p:plain
f:id:kobake:20150128223734p:plain
ちゃんとエスケープされました。

その他構文メモ

<c:forEach var="item" items="${list}" varStatus="status">
  <c:out value="${item}" />
</c:forEach>
<c:if test="${cnt >= 10}" >
  XYZ
</c:if>
<c:choose>
  <c:when test="${cnt == 1}">One</c:when>
  <c:when test="${cnt == 2}">Two</c:when>
  <c:otherwise>Other</c:otherwise>
</c:choose>
});