Spring MVC 3.0.6 @RequestMapping для двухуровневой URL получил 404 - PullRequest
1 голос
/ 28 ноября 2011

Я использую 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 ИНФОРМАЦИЯ [stdout] DEBUG [org.springframework.web.servlet.view.JstlView] -Пересылка на ресурс [WEB-INF / views / staff / newStaff.jsp] в InternalResourceView 'staff / 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 голосов
/ 18 мая 2013

Ответ Криштиану почти верен.Единственное, что осталось позади, это еще один бар до **:

@Controller
@RequestMapping(value="/staff/**")
public class StaffController extends BaseController {
...
0 голосов
/ 28 ноября 2011

Я бы добавил / перед персоналом, чтобы получить корневой контекст приложения

, попробуйте это:

@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";            
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...