您好,登錄后才能下訂單哦!
首先先貼原代碼和報(bào)錯(cuò)提示
1.在web.xml配置文件中配置HiddenHttpMethodFilter,它的作用是能把POST請(qǐng)求轉(zhuǎn)換為PUT或DELETE請(qǐng)求。
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*
2.配置視圖解析器
3.在JSP頁(yè)面中發(fā)送PUT或DELETE請(qǐng)求。注意表單中method必須為post,隱藏域中name和value屬性如下所示:
4.在目標(biāo)方法中接收請(qǐng)求。
@RequestMapping("/SpringMVC")
@Controller
public class SpringMVCTest {
private static final String Success = "Success";
@RequestMapping(value="/testRest/{id}", method=RequestMethod.PUT)
@ResponseBody
public String testRestPut(@PathVariable Integer id) {
System.out.println("testRest Put:"+id);
return Success;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
public String testRestDelete(@PathVariable Integer id) {
System.out.println("testRest Delete:"+id);
return Success;
}
}無(wú)錫婦科醫(yī)院排行榜 http://mobile.chfk120.com
4.正常來(lái)說(shuō)是可以跳轉(zhuǎn)到Success.jsp頁(yè)面的,但是卻出現(xiàn)了錯(cuò)誤(我就只貼文字了)
HTTP Status 405 – Method Not Allowed
Type Status Report
消息 JSP 只允許 GET、POST 或 HEAD。Jasper 還允許 OPTIONS
描述 請(qǐng)求行中接收的方法由源服務(wù)器知道,但目標(biāo)資源不支持
Apache Tomcat/9.0.20
5.原因分析:JSP只支持GET與POST請(qǐng)求,而我們發(fā)起的是REST風(fēng)格的請(qǐng)求,同樣調(diào)用了PUT與DELETE方法,JSP無(wú)法解析。
6.解決方法:為controller里的testRestPut和tsetRestDelete方法添加**@ResponseBody注解**。如下所示:
@RequestMapping(value="/testRest/{id}", method=RequestMethod.PUT)
@ResponseBody
public String testRestPut(@PathVariable Integer id) {
System.out.println("testRest Put:"+id);
return Success;
}
@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)
@ResponseBody
public String testRestDelete(@PathVariable Integer id) {
System.out.println("testRest Delete:"+id);
return Success;
}
然后上網(wǎng)查閱了@responseBody注解的作用,這里大致貼一段:
-)將controller的方法返回的對(duì)象通過(guò)適當(dāng)?shù)霓D(zhuǎn)換器轉(zhuǎn)換為指定的格式之后,寫(xiě)入到response對(duì)象的body區(qū),通常用來(lái)返回JSON數(shù)據(jù)或者是XML數(shù)據(jù)。添加此注解后,直接將數(shù)據(jù)寫(xiě)入到輸入流,不會(huì)再走視圖處理器。他的效果等同于通過(guò)response對(duì)象輸出指定格式的數(shù)據(jù)。
添加注解之后順利解決問(wèn)題。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。