6

私はSpring Frameworkが初めてで、メソッドでコントローラーを作成しました

@RequestMapping("/fetch/{contactId}")
public String getContact(@PathVariable("contactId") Long contactId,
        Map<String, Object> map, HttpServletRequest request,
        HttpServletResponse response) {

    Contact contact = contactService.get(contactId);
    map.put("contact", contact);
    return "contact";
}

この fetch メソッドは、ユーザーが JSP のリンクをクリックしたときに連絡先の詳細を取得するために呼び出されます。

<td><a href="fetch/${contact.id}" class="edit">Edit</a></td>

次に、連絡先オブジェクトを正常に返し、ユーザーが変更して保存できるように画面に表示します。私のjspのフォームタグはこのようなものです

<form:form method="post" action="add.html" commandName="contact"
        id="contact" onsubmit="return validateContact(this)">

問題は、同じコントローラー内の別のメソッドにページを送信しようとすると、URL が次のように変更されることです。

/myapp/app/contacts/fetch/add.html

一方、それはあるべきです

/myapp/app/contacts/add.html

私が正しく行っていないことがあることは知っていますが、正確には何がわからないのですか。どなたか問題の解決にご協力いただければ幸いです

ありがとうAA

4

3 に答える 3

7

使用する

<c:url var="addUrl" value="/contacts/add.html"/>
<form:form method="post" action="${addUrl}" commandName="contact"
      id="contact" onsubmit="return validateContact(this)">

一般に、タグc:urlで URL を直接使用するのではなく、すべてのアプリケーション内部で使用することをお勧めします。<a>

于 2012-09-14T06:49:05.177 に答える
0

属性 変更 /contacts/add.htmlで使用action

<form:form method="post" action="add.html" commandName="contact"
        id="contact" onsubmit="return validateContact(this)">

<form:form method="post" action="/contacts/add.html" commandName="contact"
        id="contact" onsubmit="return validateContact(this)">
于 2012-09-14T06:45:44.383 に答える