目次

Get size of Collection

fn:lengthは「配列、コレクション、文字列」のサイズを返却する。

<%@ page import="java.util.*" %>
<%@ page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 
 
<%
String s = "aaaaa";
pageContext.setAttribute("str",s);
 
String[] ar = {"aa","bb"};
pageContext.setAttribute("array",ar);
 
java.util.List l = new java.util.ArrayList();
l.add("aa");
l.add("bb");
l.add("cc");
pageContext.setAttribute("list",l);
%>
 
${ fn:length( str ) }   ・・・ 5を返す
${ fn:length( array ) }  ・・・ 2を返す
${ fn:length( list ) }   ・・・ 3を返す

How to get current URL

struts1のTilesを使って画面を構成していてJSTLの ${pageContext.request.requestURL}でアドレスバーのURLを出力しようとすると
jspの相対パスが出た経験があると思います。そういう時、解決策を紹介します。

${requestScope["javax.servlet.forward.request_uri"]}

この属性はServletスペック2.4から追加されたものでこれ以外にも次のような属性があります。

reference

1)
※1.Webコンテナが受信したHTTPリクエストが追加のパス情報を含まない場合,この属性は追加されません。
2)
※2.Webコンテナが受信したHTTPリクストのリクエストURIがクエリ文字列を含まない場合,この属性は追加されません。