我使用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
沒問題:)如果答案不起作用,順便說一句,它不會被接受 - 它會混淆未來的訪客。我不清楚你是否意味着它的工作或它沒有。 –