5

Spring+JSPでハイパーリンクを作成する適切な方法は何ですか? <a href="...">タグでコーディングするよりも良い方法があるはずです。たとえば、人を表示するページを考えてみましょう。URLは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 でハードコーディングされているため、これは不適切なようです。<a>で定義された URL を使用して、Spring にタグを自動的に作成させる方法が必要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>

これでサーブレットのマッピングなどは取得できませんが、何も取得できません。これは実際にはプログラムで実行できるものではありません (結局のところ、サーブレットはさまざまな 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 に答える
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" %>

新しいページまたは URL をリダイレクトする場合は、たとえば次のように使用します。

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