5

在 Spring + JSP 中创建超链接的正确方法是什么?必须有比仅仅在<a href="...">标签中编码更好的方法。以显示人员的页面为例。网址是people.htm。相应的控制器从数据库中获取人员并执行可选的列排序。JSP 可能如下所示:

<table>
<tr>
  <td><a href="people.htm?sort=name">Name</a></td>
  <td><a href="people.htm?sort=age">Age</a></td>
  <td><a href="people.htm?sort=address">Address</a></td>
</tr>
...

这似乎很糟糕,因为 URLpeople.htm在 JSP 中是硬编码的。应该有一种方法可以让 Spring<a>使用定义在servlet.xml.

编辑:也许我应该使用 Spring 表单。

4

5 回答 5

6

唯一想到的是 JSTL 标准标记<c:url>例如

<c:url var="thisURL" value="homer.jsp">
  <c:param name="iq" value="${homer.iq}"/>
  <c:param name="checkAgainst" value="marge simpson"/>
</c:url>
<a href="<c:out value="${thisURL}"/>">Next</a>

现在这不会让你得到 servlet 映射或类似的东西,但什么都不会。这不是您真正可以通过编程完成的事情(毕竟,servlet 可以而且通常确实映射到一系列 URL)。但这会照顾你逃跑。

于 2009-01-07T20:31:04.073 回答
3

我还没有在纯 spring 中看到过这种功能(尽管 grails 提供了类似的功能)。

对于您的特定情况,您可能会考虑删除文件部分并仅使用查询字符串作为 href 属性:

<td><a href="?sort=name">Name</a></td>
<td><a href="?sort=age">Age</a></td>
<td><a href="?sort=address">Address</a></td>

这些链接将查询字符串附加到当前 url 的路径部分。

于 2009-01-07T20:23:44.183 回答
2

在 jsp 中的 Spring MVC 中:

您可以使用:

一般超链接:

<a href="/Portfolio/login">Click Here</a>

如果从控制器传递:

<a href="/Portfolio/${page}">Click Here</a>

jsp标签

<c:url var="URL" value="login">
<c:param name="param" value="${parameter}"/>
</c:url>
<a href="<c:out value="${URL}"/>">Click Here</a>

希望能帮助到你.. :)

于 2017-05-04T09:33:23.290 回答
1

创建链接的更好方法是:

<a href="<%=request.getContextPath() %>/people">Name</a>

<%=request.getContextPath() %> 确保考虑到正确的 URI。

“排序”参数,您可以使用隐藏字段克服并使用一点 javascript 更改值:

<input type="hidden" name="sort" id="sort" value="name">

控制器方法应如下所示:

@RequestMapping("/people")
public String createUser(String sort) {

   ...

}
于 2014-04-06T14:14:30.397 回答
0

在你的jsp文件中导入这个包

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

当您想重定向新页面或网址时,请使用例如。

<a href='<c:url value="url of next page" />'>Home</a>
于 2015-04-12T09:43:15.860 回答