我在使用@RequestMapping(method = RequestMethod.POST)注释向控制器类添加方法时面临一个问题。问题是当我添加此方法并启动应用程序时。应用程序无法加载资源(css,JS等)。在浏览器上我得到: 无法加载资源:服务器响应状态为405(方法不允许) 并在运行日志中收到此消息: org.springframework.web.servlet.PageNotFound handleHttpRequestMethodNotSupported 警告:请求方法' GET'不支持
当我从控制器类中删除此方法时,一切正常。不知道为什么会这样。我确定它与Dispatcher Servlet映射中的Configuration或资源无关,因为没有这个方法,每个东西都可以正常工作。
由于某些业务需求,我需要使用此方法,否则这是不可能的。
任何机构都可以帮我确定问题所在。
@Controller
public class InvoiceController
{
@RequestMapping(value = "/index", method = RequestMethod.GET)
public ModelAndView adminPage() {
String username;
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
username = auth.getName(); //get logged in username
username.toUpperCase();
// Logic to build menue based on the Role of the user.
HashMap hm = new HashMap();
OrderItems od = new OrderItems();
ModelAndView model = new ModelAndView();
model.addObject("usr", username);
//Set the object for Menue Links on the Page
model.addObject("mnue", hm);
model.setViewName("index");
model.addObject("odi",od);
return model;
}
@RequestMapping(method = RequestMethod.POST)
public String save(HttpServletRequest request,
HttpServletResponse response,
Model model)
{
System.out.println("Im here in Genaric Post Method");
return null;
}
}
请注意我使用的是Spring Security配置。安全性有什么关系吗?或者控制器类配置存在一些问题。
提前感谢您的期待。
此致
D Kamran
答案 0 :(得分:0)
将端点网址值添加到请求映射
@RequestMapping(value="/index", method = RequestMethod.POST)
这是因为Post方法声明映射到所有路径,因为Method和Controller类都没有该值