2

送信された URL に検索クエリを入れる簡単なフォームを jsp に設定しようとしています。

これは私がこれまでに持っているものです:

<form action="search/" method="get" onsubmit="this.action+=this.q.value.trim();return true">
   <input type="text" id="q">
   <input type="submit" value="go">
</form>

これは、Web アプリの各ページに含まれている jsp にあり、アプリのルートにいるときに機能します。たとえば、最初に「http://localhost:8080/MyApp/」を読み込み、検索フォームに「123456」と入力すると、「http://localhost:8080/MyApp/search/123456」に移動します。私が欲しいものです。ただし、そのページから再度検索すると (たとえば「654321」)、「http://localhost:8080/MyApp/search/search/654321」に移動しますが、これはうまくいきません。その時点でどのページにいても、アプリのパスのルートに search/{query} を追加する必要があります。

可能であればjavascriptを避けたいのですが、JSTLで問題ありません。

どんな提案でも大歓迎です!

4

1 に答える 1

0

/ で始まるフル パスをアクションに追加するだけです。アプリケーションのコンテキストに依存することに注意してください。次を使用できます。

<form action="${pageContext.request.contextPath}/search/"...

dev と prod で動作します。

編集 :

パス: 検索は現在のパスからの相対パスをロードしようとするので: http://domain.com/contact/search/ パス: /検索はドメインからの相対パスをロードしようとするので: http://domain.com/

上記のコンテキスト パスでは、dev から prod に変更されても機能します。

お役に立てれば!

于 2012-11-15T16:22:14.313 に答える