1

ある.jspページから別のページに配列またはリストを渡す方法を知りたいです。次に、この配列から値を取得して、それらをjavascript配列に割り当てます。ソースjspページが正しく構成されていると思いますが、2番目の.jspページの値を取得する方法を考えていました。

これは私のソース.jspファイルです:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Firstjsp</title>
</head>
<body>
<Form Method = "Post" Action = "Mapper.jsp">
<% String locations[] = {"Loan 1", "33.890542", "151.274856", "Address 1","true", "-35404.34"};
for (int i =0; i<locations.length; i++)
{
%>
<Input type = "Hidden" name = "loc" value = "<%= locations[i] %>">
<%
}
%>
</Form>
</body>
</html>
4

2 に答える 2

2

を使用して取得できますHttpServletRequest#getParameterValues()。これは、同じパラメーター名を持つすべてのパラメーター値の文字列配列を返します。あなたの場合、loc最初のJSPで同じ名前の非表示のHTML入力要素をいくつか生成したので、2番目のJSP(またはできればサーブレット)で次のようにする必要があります。

String[] locations = request.getParameterValues("loc");
于 2012-06-29T17:31:38.567 に答える
1

私が考える最も簡単な方法は、変数(ポインターとしても機能します)をセッション変数として配置することです。これにより、コードが同じセッションで実行されている限り、どこからでもアクセスできます。

<% String name = request.getParameter( "username" ); session.setAttribute( "theName", name ); %>

この例でもリクエストを使用しています。違いは、セッションが目立つことです。たとえば、セッションで変数を設定した場合、ブラウザを閉じて再起動しても、それは引き続き存在します。グローバル変数と考えてください。リクエストはあるjsp/servletから別のjsp/servletにデータを送信する場合に最適です。基本的に寿命は1です。ページをリダイレクトするとページは消えます。

session.setParameter(name_of_the_variable,the_variable)とを使用できますsession.getParameter(name_of_the_variable)。私にとって有用なヒントとして、返されたパラメータを必ずテストしてください。上記の場合、「名前」がNULLでない場合は必ずテストしてください。その名前の変数がセッションにない場合は、NULLが返されます。クラッシュする可能性があります。これがお役に立てば幸いです。

于 2012-06-29T17:21:50.243 に答える