spring mvc 3.0.6 @RequestMapping for two level url得到404

时间:2011-11-28 13:01:00

标签: java spring-mvc

我正在使用spring mvc 3.0.6。这是我的代码:

@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:30,648 INFO [stdout] DEBUG [org.springframework.web.servlet.view.JstlView] - 转发到InternalResourceView员工的资源[WEB-INF / views / staff / newStaff.jsp] / NEWSTAFF'

  • 20:16:30,648 INFO [stdout] 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);
    }
}

之后,我发送新请求(只有一个级别的URL):http:// localhost:8080 / mvc / newStaff.do。工作得很好!!!! 任何决议或我错误的东西?

我正在使用jbossAS 7.0

2 个答案:

答案 0 :(得分:0)

我会在工作人员面前添加一个/来获取应用程序上下文根

试试这个:

@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="/staff/newStaff**",method=RequestMethod.GET)
    public String addStaff(Model model) throws Exception{
        model.addAttribute("staff", new Staff());
        return "/staff/newStaff";            
    }
}

答案 1 :(得分:0)

克里斯蒂亚诺的答案几乎是正确的。唯一留下的是**之前的另一个酒吧:

@Controller
@RequestMapping(value="/staff/**")
public class StaffController extends BaseController {
...