204

JSPでは、URLからパラメータを取得するにはどうすればよいですか?

たとえばwww.somesite.com/Transaction_List.jsp?accountID=5
、5を取得したい URLがあります。

セッションなどにあるようなrequest.getAttribute( "accountID")はありますか?

4

9 に答える 9

255

統一式言語暗黙オブジェクトについて、JavaEE5チュートリアルは次のように書いています。

暗黙のオブジェクト

JSP式言語は、暗黙的なオブジェクトのセットを定義します。

  • pageContext:JSPページのコンテキスト。次のようなさまざまなオブジェクトへのアクセスを提供します。
    • servletContext:JSPページのサーブレットと同じアプリケーションに含まれるすべてのWebコンポーネントのコンテキスト。Webコンテキストへのアクセスを参照してください。
    • session:クライアントのセッションオブジェクト。クライアント状態の維持を参照してください。
    • request:JSPページの実行をトリガーするリクエスト。リクエストからの情報の取得を参照してください。
    • response:JSPページから返される応答。応答の作成を参照してください。
  • さらに、次のオブジェクトに簡単にアクセスできるいくつかの暗黙的なオブジェクトを使用できます。
    • param:リクエストパラメータ名を単一の値にマップします
    • paramValues:リクエストパラメータ名を値の配列にマップします
    • header:リクエストヘッダー名を単一の値にマップします
    • headerValues:リクエストヘッダー名を値の配列にマップします
    • cookie:Cookie名を単一のCookieにマップします
    • initParam:コンテキスト初期化パラメーター名を単一の値にマップします
  • 最後に、スコープオブジェクトの使用で説明されているさまざまなスコープ変数へのアクセスを許可するオブジェクトがあります。
    • pageScope:ページスコープの変数名をそれらの値にマップします
    • requestScope:リクエストスコープの変数名をそれらの値にマップします
    • sessionScope:セッションスコープの変数名をそれらの値にマップします
    • applicationScope:アプリケーションスコープの変数名をそれらの値にマップします

興味深い部分は太字で示されています:)

したがって、質問に答えるには、次のようにアクセスできる必要があります(ELを使用)。

${param.accountID}

または、JSPスクリプトレットを使用する(非推奨):

<%
    String accountId = request.getParameter("accountID");
%>
于 2009-12-11T19:49:53.740 に答える
189

GETリクエストでは、リクエストパラメータはクエリ文字列(URLの疑問符に続くデータ)から取得されます。たとえば、URL http://hostname.com?p1=v1&p2=v2には、2つのリクエストパラメータ(p1とp2)が含まれています。POSTリクエストでは、リクエストパラメータは、クエリ文字列と、リクエストの本文にエンコードされている投稿データの両方から取得されます。

この例は、生成された出力に要求パラメーターの値を含める方法を示しています。

Hello <b><%= request.getParameter("name") %></b>!

ページがURLでアクセスされた場合:

http://hostname.com/mywebapp/mypage.jsp?name=John+Smith

結果の出力は次のようになります。

Hello <b>John Smith</b>!

クエリ文字列に名前が指定されていない場合、出力は次のようになります。

Hello <b>null</b>!

この例では、スクリプトレットのクエリパラメータの値を使用しています。

<%
    if (request.getParameter("name") == null) {
        out.println("Please enter your name.");
    } else {
        out.println("Hello <b>"+request. getParameter("name")+"</b>!");
    }
%>
于 2009-12-11T19:48:43.040 に答える
86

EL(JSP式言語)を使用する:

${param.accountID}

于 2009-12-11T19:49:40.997 に答える
21

ここにコメントを追加できれば...

<c:out value="${param.accountID}"></c:out>

私には機能しません(0を出力します)。

代わりに、これは機能します:

<c:out value="${param['accountID']}"></c:out>

于 2013-09-24T13:59:10.277 に答える
5

request.getParameter("accountID")あなたが探しているものです。これはJavaサーブレットAPIの一部です。詳細については、 http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.htmlを参照してください。

于 2009-12-11T19:49:19.263 に答える
4
String accountID = request.getParameter("accountID");
于 2009-12-11T19:48:47.860 に答える
0

サブジェクトレコードとそのsubject_idを削除したい例

@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
    subjectsDao.delete(subjectid);
    return new ModelAndView("redirect:/subject_setup");
}

パラメータはクエリの入力に使用されます

public int delete(int subjectid) {
    String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
    return template.update(sql);
}
于 2018-03-21T03:23:41.723 に答える
0

www.somesite.com/Transaction_List.jsp?accountID=5

このために、javaにURLメソッド呼び出しがあります。ここで数値をキャストする場合は、文字列値をにキャストする場合と同様です。したがって、要件に応じて、ページの以下の行をコピーしてください。request.getParameterintstring

int  accountId =(int)request.getParameter("accountID");

これで、ページ全体を使用してこの値を呼び出すことができaccountIdます。

これaccountIdはパラメータの名前です。これを使用して複数のパラメータを取得することもできますが、これは機能しません。リクエストGETをヒットした場合にのみメソッドで機能し、エラーになります。POST

これがお役に立てば幸いです。

于 2019-05-01T05:22:21.413 に答える
0

ページ1:詳細ページ2:<%String id = request.getParameter( "userid");%> //これで、hsql詳細製品のSQLクエリにidを使用できます

于 2020-03-30T05:22:33.867 に答える