web-dev-qa-db-ja.com

JSPでサーブレットによって設定されたリクエスト属性にアクセスする方法は?

JSPページのサーブレットで設定された属性値を取得しようとしていますが、${param}。私は何が違うのかわからない。たぶん簡単ですが、私はまだそれを管理できませんでした。

public void execute(HttpServletRequest request, HttpServletResponse response) {

    //there's no "setParameter" method for the "request" object
    request.setAttribute("attrib", "attribValue");

    RequestDispatcher rd = request.getRequestDispatcher("/Test.jsp");
    rd.forward(request,response);
}

JSPでは、「attribValue」を取得しようとしましたが、成功しませんでした。

<body>
    <!-- Is there another tag instead of "param"??? -->
    <p>Test attribute value: ${param.attrib}
</body>

すべてのプロセス(呼び出しページ、サーブレット、および宛先ページ)にパラメーターを渡すと、非常にうまく機能します。

21
Alex

デフォルトのELスコープで既に利用可能ですので、

${attrib}

する必要があります。

スコープを明示的に指定する場合(ELは、ページ、リクエスト、セッション、およびアプリケーションスコープを順に検索して、属性名に一致する最初の非null属性値を検索します)、代わりにスコープマップで参照する必要があります。 ${requestScope}リクエストスコープ

${requestScope.attrib}

これは、おそらくページスコープ内に完全に同じ名前の属性がある場合にのみ有用です。結局)。

こちらもご覧ください:

28
BalusC

EL構文とscriptlet構文を比較すると、概念を理解するのに役立ちます。

  • paramrequest.getParameter()のようなものです
  • requestScoperequest.getAttribute()のようなものです

request attribute from request parameter

9
smwikipedia

式タグを使用してみましたか?

<%= request.getAttribute("attrib") %>
2
mooonli

スコープがリクエストタイプの場合、requestでrequest.setAttribute(key、value)を使用して属性を設定し、jspで$ {requestScope.key}を使用して取得します。

0
Kumar Abhi