JSPでは、URLからパラメータを取得するにはどうすればよいですか?
たとえばwww.somesite.com/Transaction_List.jsp?accountID=5
、5を取得したい
URLがあります。
セッションなどにあるようなrequest.getAttribute( "accountID")はありますか?
JSPでは、URLからパラメータを取得するにはどうすればよいですか?
たとえばwww.somesite.com/Transaction_List.jsp?accountID=5
、5を取得したい
URLがあります。
セッションなどにあるようなrequest.getAttribute( "accountID")はありますか?
統一式言語の暗黙オブジェクトについて、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");
%>
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>!");
}
%>
EL(JSP式言語)を使用する:
${param.accountID}
ここにコメントを追加できれば...
<c:out value="${param.accountID}"></c:out>
私には機能しません(0を出力します)。
代わりに、これは機能します:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
あなたが探しているものです。これはJavaサーブレットAPIの一部です。詳細については、 http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.htmlを参照してください。
String accountID = request.getParameter("accountID");
サブジェクトレコードとその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);
}
www.somesite.com/Transaction_List.jsp?accountID=5
このために、javaにURL
メソッド呼び出しがあります。ここで数値をキャストする場合は、文字列値をにキャストする場合と同様です。したがって、要件に応じて、ページの以下の行をコピーしてください。request.getParameter
int
string
int accountId =(int)request.getParameter("accountID");
これで、ページ全体を使用してこの値を呼び出すことができaccountId
ます。
これaccountId
はパラメータの名前です。これを使用して複数のパラメータを取得することもできますが、これは機能しません。リクエストGET
をヒットした場合にのみメソッドで機能し、エラーになります。POST
これがお役に立てば幸いです。
ページ1:詳細ページ2:<%String id = request.getParameter( "userid");%> //これで、hsql詳細製品のSQLクエリにidを使用できます