java - SpringMVC:HTTP Status 405 - JSPs only permit GET POST or HEAD
PHP中文网
PHP中文网 2017-04-17 17:45:45
0
3
847

跟着网上的视频敲示例代码,然后就报错了...
Web页面代码:

<!-- REST PUT -->
<form action="test/restPut/2" method="post">
  <input type="hidden" name="_method" value="PUT"/>
  <input type="submit" value="REST PUT" />
</form>

Controller代码:

@Controller
@RequestMapping("/test")
public class SpringRequestMapping
{
    // 成员属性;
    private final String SUCCESS = "success";
    
    /**
     * 功能描述:测试RESTful PUT;
     * @param id
     * @return
     */
    @RequestMapping(value = "/restPut/{id}", method = RequestMethod.PUT)
    public String restPut(@PathVariable("id") Integer id)
    {
        System.out.println("RESTful PUT:" + id);
        return SUCCESS;
    }
    
}

web.xml

<filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>    
  
<filter-mapping>
  <filter-name>HiddenHttpMethodFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

新手求助,麻烦大神指点一二,问题出在哪了???

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(3)
PHPzhong

あなたが書いた /restPut/{id} インターフェースは RESTful スタイルのインターフェースであり、このインターフェースの名前から判断すると、このメソッドで返すものはデータインターフェースであるため、Spring はそれを JSP ページであると考えます。返されたコンテンツに基づいており、JSP インターフェイスが http の get post メソッドのみを使用できることが明確に示されています。

実際に JSON データなどのデータを返したい場合は、@RequestMapping アノテーションの下に @ResponseBody を追加し、return SUCCESS が return "{msg:"hello noob!"}" になります
それ以外の場合、インターフェイスは使用不可 put メソッドを使用し、put メソッドに名前を付けないでください

いいねを押す +0
洪涛

mvcのサーブレット名を指定

リーリー

</filter-mapping>

いいねを押す +0
巴扎黑

フォームの送信メソッドは post ですが、マッピングを構成するときは、RequestMethod.PUT に設定します。これに問題があるかどうかを確認してください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート