我使用spring mvc 3.0.6。这里是我的代码:spring mvc 3.0.6 @RequestMapping为两级url得到了404
@Controller
@RequestMapping(value="/staff")
public class StaffController extends BaseController {
@RequestMapping(method=RequestMethod.GET)
public ModelAndView goStaffIndex(Model model) throws Exception{
model.addAttribute("staff", new Staff());
return new ModelAndView("staff/staffIndex","model",model);
}
@RequestMapping(value="/newStaff",method=RequestMethod.GET)
public String addStaff(Model model) throws Exception{
model.addAttribute("staff", new Staff());
return "staff/newStaff";
//return new ModelAndView("staff/newStaff","model",model);
}
}
第一种方法做工精细。
问题在第二种方法,当我发送请求:http:// localhost:8080/mvc/staff/newStaff.do。调度员发送请求到addStaff()方法,这也很好。回报也很好。因为调试消息告诉我很好。
消息:
20:16:30648 INFO [标准输出] DEBUG [org.springframework.web.servlet.view.JstlView] -Forwarding资源[WEB-INF /视图/人员/ newStaff.jsp]在InternalResourceView '人员/ NEWSTAFF'
20:16:30648 INFO [标准输出] DEBUG [org.springframework.web.servlet.DispatcherServlet] - 成功完成请求
但是,页面出现了404错误。但调试控制台没有任何错误或警告。
当我删除类@RequestMapping和改变一些代码,如:
public class StaffController extends BaseController {
@RequestMapping(value="/staff",method=RequestMethod.GET)
public ModelAndView goStaffIndex(Model model) throws Exception{
model.addAttribute("staff", new Staff());
return new ModelAndView("staff/staffIndex","model",model);
}
@RequestMapping(value="/newStaff",method=RequestMethod.GET)
public String addStaff(Model model) throws Exception{
model.addAttribute("staff", new Staff());
return "staff/newStaff";
//return new ModelAndView("staff/newStaff","model",model);
}
}
在此之后,我发送新的请求(仅具有一个水平网址):HTTP://本地主机:8080/MVC /newStaff.do。工作正常! 任何决议或我误会了什么?
我使用jbossAS 7.0
你尝试是(a)把视图更深一层,在/staff/staff/newStaff.jsp,或(b)使用JSP的绝对路径? –
谢谢戴夫..你告诉我一个好主意test..yes,当我使用绝对路径到JSP,它的工作..我回来检查我的InternalResourceViewResolver配置,前缀= WEB-INF/views /,结合建议cfontes我改变了前缀= /WEB-INF/views/...working fine.thanks .. – cameldeng
没问题:)如果答案不起作用,顺便说一句,它不会被接受 - 它会混淆未来的访客。我不清楚你是否意味着它的工作或它没有。 –