在我的Spring MVC应用程序中,除了一个以外,我的所有RequestMapping
都正确映射。我无法弄清楚为什么这是PageNotFound
错误。对于方法addSatisfaction
,我得到PageNotFound - No mapping found for HTTP request with URI [/CCHPWeb/heart2heart/feedback/102/resolution/satisfaction] in DispatcherServlet with name 'dispatcher'
。PageNotFound - 在名为'dispatcher'的DispatcherServlet中找到URI为[]的HTTP请求没有映射
我Controller
:
@Controller
@RequestMapping("/heart2heart/feedback")
public class H2HFeedbackController {
private static final Logger logger = LoggerFactory.getLogger(H2HFeedbackController.class);
private final ActivitiService activitiService;
private final Heart2HeartService heart2heartService;
@Autowired
public H2HFeedbackController(ActivitiService activitiService, Heart2HeartService heart2heartService) {
super();
this.activitiService = activitiService;
this.heart2heartService = heart2heartService;
}
@RequestMapping(value = "/${feedbackId}/resolution/satisfaction", method = RequestMethod.GET)
public String getSatisfaction(@PathVariable int feedbackId, Model model) {
Feedback feedback = new Feedback();
feedback.setId(feedbackId);
try {
feedback = heart2heartService.getFeedbackById(feedback);
if (feedback.getId() == 0) {
model.addAttribute("error", "Feedback does not exist");
model.addAttribute("status", "404 - Not Found");
return "error";
}
model.addAttribute("feedback", feedback);
} catch (Exception e) {
logger.error("Exception :: ", e);
}
return "heart2heart/closeFeedback";
}
@RequestMapping(value = "/{feedbackId}", method = RequestMethod.GET)
public String viewFeedback(@PathVariable int feedbackId, Model model) {
Feedback feedback = new Feedback();
feedback.setId(feedbackId);
try {
feedback = heart2heartService.getFeedbackById(feedback);
if (feedback.getId() == 0) {
model.addAttribute("error", "Feedback does not exist");
model.addAttribute("status", "404 - Not Found");
return "error";
}
model.addAttribute("feedback", feedback);
} catch (Exception e) {
logger.error("Exception :: ", e);
}
return "heart2heart/feedbackView";
}
}
我WebApplicationInitializer
是:
public class SiteMain implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();
dispatcherContext.register(MvcConfig.class);
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
方法级上的RequestMappings不应该有前导“/” – Nitek