Spring MVC Навигация между JSP - PullRequest
0 голосов
/ 24 февраля 2019

Я использую Java 8 и Spring 5.1.5.Я новичок в этом, поэтому попытался следовать рекомендациям, но у меня проблема в том, что отображение DispatcherServlet и / или контроллера, похоже, пропущено, я получаю следующую ошибку в Tomcat:

Исходный сервер не найдентекущее представление для целевого ресурса или не хочет раскрывать, что он существует.

My web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                             id="WebApp_ID" version="2.5">

        <description>
            Configuration file for the Store Application
        </description>

        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/Store-servlet.xml</param-value>
        </context-param>

        <servlet>
          <servlet-name>Store</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        
          <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
        </servlet>

        <servlet-mapping>
          <servlet-name>Store</servlet-name>
          <url-pattern>/</url-pattern>
        </servlet-mapping>


</web-app>

My Store-servlet.xml

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:context = "http://www.springframework.org/schema/context"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans     
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context 
           http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/mvc 
           http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package = "com.store.controller" />
    <context:annotation-config/>

    <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp" />
      <property name = "suffix" value = ".jsp" />
    </bean>

    <mvc:resources mapping="/resources/**" location="/resources/"/>

</beans>

Мой контроллер

package com.store.controller;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;


@Controller
public class CarMartController {

    private transient Logger log = Logger.getLogger( "CarMartController" );


    @GetMapping("/store/carMart")
    public String navigateToCarMart( ModelMap model) {
        log.info("CarMartController [navigatetoCarMart");
        return "carMart";
    }
}

Мой CarMart.jsp и заголовок

<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>

    <head>
        <link rel="stylesheet" type="text/css" href="/resources/css/styles.css" />
        <title>Car Mart</title>
    </head>
    <body style="background-image:url(/resources/images/carBackground.jpg);background-size:cover">
        <jsp:include page="./header.jsp" />
    </body>
</html>

<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
 <div class="navbar">
    <a href="<c:url value='/customer/customerDetail.jsp' />" >Customers</a>
    <a href="<c:url value='/car/carDetail.jsp' />" >Cars</a>
</div>

URL-адрес, по которому я звоню: http://localhost:8088/store/carMart.jsp

Каталог ресурсов находится вКаталог webapps / store файла war

Каталог jsp находится в каталоге WEB-INF

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Комментарии относительно RequestMapping и добавления

<mvc:annotation-driven/>

устранили проблему

0 голосов
/ 24 февраля 2019

Прежде всего, добавьте @RequestMapping для вашего класса контроллера:

@Controller
@RequestMapping("/store")
public class CarMartController {

    @GetMapping("/carMart")
    public String navigateToCarMart( ModelMap model) {
    ...
    }

}

и попробуйте получить доступ к вашей конечной точке, используя: http://localhost:8088/store/carMart
Без .jsp наконец.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...