Java JSP中的Href和标记云

Java JSP中的Href和标记云,java,jsp,spring-mvc,Java,Jsp,Spring Mvc,我创建了一个标记云,在这个云中我显示了一些值 <c:forEach items="${alltags}" var="search"> <a href='${tags.display}'/> </c:forEach> 现在,我有了另一个jsp,我在其中执行搜索。我有一个输入字段,用户可以给出一个值,并在单击按钮时执行搜索。在我正在尝试的这个特定场合中,当用户单击某个值的链接(在云上)时,会自动发送输入框中标记的值(tags.display)并进行

我创建了一个标记云,在这个云中我显示了一些值

 <c:forEach items="${alltags}" var="search">
   <a href='${tags.display}'/>
 </c:forEach>

现在,我有了另一个jsp,我在其中执行搜索。我有一个输入字段,用户可以给出一个值,并在单击按钮时执行搜索。在我正在尝试的这个特定场合中,当用户单击某个值的链接(在云上)时,会自动发送输入框中标记的值(tags.display)并进行搜索

搜索JSP

<form:form method="POST" commandName="search"> 
  <tr>
     <td><spring:message code="blah"/></td>
     <td><form:input path="apath" /></td>
  </tr>
</form>

<input type="submit"/>


您建议我做什么?

首先,搜索表单应该使用GET而不是POST:搜索是一个幂等运算,它不会修改服务器端的任何内容

如果切换方法以获取和提交表单,您会注意到表单调用的URL类似:
http://www.foo.com/app/search?abstracts=

只需使您的链接具有相同的href,链接将发送与搜索表单相同的请求:

<a href="<c:url value="/search">
             <c:param name="abstracts" value="${tag.display}"/>
         </c:url>">${tag.display}</a>


另外,请注意,您的提交输入应该在表单内部,而不是外部。

首先,搜索表单应该使用GET而不是POST:搜索是一个幂等操作,它不会修改服务器端的任何内容

如果切换方法以获取和提交表单,您会注意到表单调用的URL类似:
http://www.foo.com/app/search?abstracts=

只需使您的链接具有相同的href,链接将发送与搜索表单相同的请求:

<a href="<c:url value="/search">
             <c:param name="abstracts" value="${tag.display}"/>
         </c:url>">${tag.display}</a>


另外,请注意,您的提交输入应该在表单内部,而不是外部。

+1对于分隔href和搜索参数,如果显示条件和搜索条件不再相关,这将在将来提供更好的可维护性。@mprabhat:我没有这样做,但您是对的。例如,显示的值可以是i18ned,但search应该依赖于绝对标记ID或代码。+1用于分隔href和搜索参数,如果显示条件和搜索条件不再相关,这将在将来提供更好的可维护性。@mprabhat:嗯,我没有这样做,但你是对的。例如,显示的值可以是i18ned,但是search应该依赖于绝对标记ID或代码。