跟着网上的视频敲示例代码,然后就报错了...
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>
新手求助,麻烦大神指点一二,问题出在哪了???
L'interface /restPut/{id} que vous avez écrite est une interface de style reposant, et à en juger par le nom de cette interface, c'est une interface de données. Ce que vous retournez dans cette méthode est une page jsp, donc Spring pense que c'est le cas. basé sur le contenu renvoyé. Une interface de page jsp, et cela vous indique clairement que l'interface jsp ne peut utiliser que la méthode get post en http.
Si vous souhaitez vraiment renvoyer des données, telles que des données json, ajoutez @ResponseBody sous l'annotation @RequestMapping, puis return SUCCESS devient return "{msg:"hello noob!"}"
Sinon, votre interface le fera ne pas être utilisé Utilisez la méthode put et ne nommez pas la méthode put
Spécifiez le nom du servlet de mvc
<filtrage-mapping>
</filter-mapping>
La méthode de soumission de votre formulaire est la publication, mais lors de la configuration du mappage, définissez-la sur RequestMethod.PUT. Vérifiez si c'est là le problème.