<jsp:param>

<jsp:param> は他のJSPページへパラメータを渡すJSPアクションタグである。この使い方を紹介する。

対象タグ

次のJSPアクションタグにリクエスト・パラメータを渡すことができる。

タグ

転送するJSPページへパラメータを渡す。

<jsp:forward page="/forward.jsp">
  <jsp:param name="user" value="tsuka" />
</jsp:forward>

インクルードするJSPページへパラメータを渡す。

<jsp:include page="/footer.jsp" flush="true">
  <jsp:param name="user" value="tsuka" />
</jsp:include>

属性

<jsp:param> タグには次の属性を指定する。

name
パラメータの名前を指定する。
value
パラメータの値を指定する。

フォワード先ページへのパラメータ受け渡し

JSPアクションタグ <jsp:param> の使用例を次に示す。

<%@ page contentType="text/html;charset=UTF-8" %>
<jsp:forward page="/forward.jsp">
  <jsp:param name="user" value="tsuka" />
</jsp:forward>
<!DOCTYPE html>
<html>
  <head>
    <title>Forward example</title>
  </head>
  <body>
  </body>
</html>

インクルード先ページへのパラメータの渡し方

<jsp:include> へパラメータを渡す例を示す。

<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html>
  <head>
    <title>JSP example</title>
  </head>
  <body>
    <jsp:include page="/header.jsp">
      <jsp:param name="user" value="tsuka" />
      <jsp:param name="type" value="prime" />
    </jsp:include>
    <!-- content -->
    <jsp:include page="/footer.jsp" />
  </body>
</html>

文字化けしないようにするためには、インクルード先のページを次のように記述する。

<%@ page pageEncodinf="UTF-8" %>
<%
  request.setCharacterEncoding("UTF-8");
  String user = request.getParameter("user");
%>
User: <%=user%>

setCharacterEncoding() は javax.servlet.ServletRequestインタフェースのメソッドである。

void setCharacterEncoding(String env) throws UnsupportedEncodingException

引数 env には、リクエストの文字エンコーディングを指定する。

getParameter() は javax.servlet.ServletRequestインタフェースのメソッドである。

String getParameter(String name)

引数 name には、リクエスト・パラメータの名前を指定する。指定されたパラメータが存在しない場合は null を返す。

getParameter() メソッドは、指定した名前のパラメータにひとつの値だけがある場合に使用する。パラメーターに複数の値がある場合は、getParameterValues() メソッドを使用する。

String[] getParameterValues(String name)

JSPアクションタグ

JSPのアクションタグには、他にも次のタグがある。