2

私は使用しています

<%=request.getRequestURL()%>

現在のページにリダイレクトしますが、次のようないくつかのパラメーターを持つアドレスに問題があります。

http://xxx.com/yyy/x/search?mesg=welcome&initial=true&app= 

問題を引き起こすパラメータなしでアドレスにリダイレクトします。

アドレス全体を取得する解決策はありますか?

4

3 に答える 3

2

以下の 2 つの方法を使用して URL をリダイレクトできます。

コア jsp taglib を使用します。(私はこれを好みます)

<c:redirect url="your url">   
     <c:param name="mesg" value ="${mesg}" />   
     <c:param name="initial" value ="${initial}" /> 
     <c:param name="app" value="${app}" />
<c:redirect> 

スクリプトレットの使用

<%
  String queryString =  request.getQueryString();
  if(queryString != null) {
    response.sendRedirect("http://xxx.com/yyy/x/search?" + queryString); 
  }
  else {
    response.sendRedirect("http://xxx.com/yyy/x/search"); 
  }
%>

getQueryString()、リクエストのクエリ文字列を返しますが、リクエストパラメータが提供されていない/利用できない場合は返さnullれるため、それを処理する必要がありますnull

于 2013-05-27T05:45:03.713 に答える
2

状態のドキュメントHttpServletRequest.getRequestURL()として、クエリ文字列は含まれていません。これを「直接」含むメソッドは見当たらないHttpServletRequestので、自分で構築する必要があるかもしれませんが、それほど難しくはありません。メソッドを使用してgetParameterMap()、すべてのクエリ パラメータのマップを取得できます。

編集

HttpServletRequest.getQueryString()探していた方法でした。ありがとう@AlpeshGediya。と組み合わせることでgetRequestURL、あなたが望むものを手に入れることができます。

于 2013-05-27T05:37:35.143 に答える
1

以前の回答を修正して、次のように書きました。

<c:set var="parameter" value="<%=request.getQueryString()%>"/>
<c:if test="${not empty parameter}">
    <c:set var="parameter" value="?${parameter}"/>
</c:if>

ありがとう

于 2013-05-27T06:59:02.317 に答える