Spring RequestMapping 404 ошибка?

Как исправить ошибку 404, Запрашиваемый ресурс недоступен.

viewResolver из dispatcher-servlet.xml

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/" p:suffix=".jsp">
 </bean>



@RequestMapping("/Locations/edit/{locationId}")
public void edit(@PathVariable String locationId,ModelMap map) {
    Locations location=new Locations();
    location=locationsService.getByID(Integer.parseInt(locationId));
    map.put("location", location);      
}

ошибка HTTP Status 404 - /DoctorsBeta/WEB-INF/Locations/edit/1.jsp description Запрашиваемый ресурс недоступен.

2 ответа

Решение
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/jsps/" p:suffix=".jsp">
 </bean>





 @RequestMapping("/Locations/edit/{locationId}")
    public String edit(@PathVariable String locationId,ModelMap map) {
        Locations location=new Locations();
        location=locationsService.getByID(Integer.parseInt(locationId));
        map.put("location", location); 
        reutrn "nameOfYourJspFileHere";
    }

РЕДАКТИРОВАТЬ Я только что понял, что ваше имя JSP не 1, и это идентификатор, поэтому, когда вы отправляете / Locations / Edit / 1

Обратите внимание, что все ваши jsps должны находиться в /WEB-INF/ (но я предлагаю добавить какую-то другую папку (jsps,views или что-то, что указывает на наличие jsp-файлов) dir, поэтому, когда вы возвращаете имя представления, к нему добавляются префикс и суффикс Таким образом, в папке jsps могут быть вложенные папки, поэтому каждый раз, когда вы возвращаете имя представления, убедитесь, что оно находится в правильном пути, например, view name = index.jsp(/WEB-INF/jsps/common/index.jsp), поэтому в вашем методе вы могли бы вернуть "common/index"Надеюсь, поможет.

Метод Void не возвращает ни на одну страницу jsp. Либо вы должны вернуть строку ("имя jsp"), либо ModelAndView страницы.

@RequestMapping("/Locations/edit/{locationId}")
    public String edit(@PathVariable String locationId,ModelMap map) {
        Locations location=new Locations();
        location=locationsService.getByID(Integer.parseInt(locationId));
        map.put("location", location); 
        return "test";
    }

Если это будет отображаться так

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/jsps/"
     // test
    p:suffix=".jsp">
 </bean>

Будет искать /WEB-INF/jsps/test.jsp

Другие вопросы по тегам