2

我正在尝试在 jsp 中设置一个简单的表单,该表单将在提交的 URL 中放置一个搜索查询。

这是我到目前为止所拥有的:

<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/ 路径:/search 将尝试从域加载相对路径:http: //domain.com/

使用上面的上下文路径,无论它是否从 dev 更改为 prod,它都会起作用。

希望这可以帮助!

于 2012-11-15T16:22:14.313 回答