@pashaa

В чем проблема HTTP Status 404?

dispatcher-servlet
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
		 http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- DispatcherServlet Context: defines this servlet's request-processing
        infrastructure -->
    <!-- Enables the Spring MVC @Controller programming model -->
    <mvc:annotation-driven />
    <!-- Handles HTTP GET requests for /resources/** by efficiently serving
        up static resources in the ${webappRoot}/resources directory -->
    <mvc:resources mapping="/resources/**" location="/resources/" />
    <!-- Resolves views selected for rendering by @Controllers to .jsp resources
        in the /WEB-INF/views directory -->
    <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property  name="prefix" value="/WEB-INF/" />
        <property  name="suffix" value=".jsp" />
    </bean>
    <context:component-scan base-package="controller"/>
    <context:component-scan base-package="DAO"/>
    <context:component-scan base-package="model"/>
</beans>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>HttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>HttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>
</web-app>

ApplicationContext
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd">

    <bean id="dataSourceA"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource"
          p:driverClassName="com.mysql.jdbc.Driver"
          p:url="jdbc:mysql://localhost:3306/tur"
          p:username="root"
          p:password="root"/>
    <bean id="transactionManager"
          class="org.springframework.orm.hibernate5.HibernateTransactionManager"
          p:sessionFactory-ref="sessionFactory"/>
    <tx:annotation-driven/>
    <bean id="sessionFactory"
          class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"
          p:dataSource-ref="dataSourceA"
          p:packagesToScan="entity"
          p:hibernateProperties-ref="hibernateProperties"/>
    <util:properties id="hibernateProperties">
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
        <prop key="hibernate.max_fetch_depth">1</prop>
        <prop key="hibernate.jdbc.fetch_size">50</prop>
        <prop key="hibernate.jdbc.batch_size">10</prop>
        <prop key="hibernate.show_sql">true</prop>
        <!-- Свойства для Hibernate Envers -->
        <prop key="org.hibernate.envers.audit_taЬle_suffix">_H</prop>
        <prop key="org.hibernate.envers.revision_field_name">AUDIT_REVISION
        </prop>
        <prop key="org.hibernate.envers.revision_type_field_name">ACTION_TYPE
        </prop>
        <prop key="org.hibernate.envers.audit_strategy">
            org.hibernate.envers.strategy.ValidityAuditStrategy
        </prop>
        <prop key="org.hibernate.envers.audit_strategy_validity_end_rev_field_name">
            AUDIT_REVISION_END</prop>
        <prop key="org.hibernate.envers.audit_strategy_validity_store_revend_timestamp">
            True</prop>
        <prop key="org.hibernate.envers.audit_strategy_validity_revend_timestamp_field_name">
            AUDIT_REVISION_END_TS</prop>
    </util:properties>
</beans>

package controller;
import DAO_interface.HotelDAO;
import model.HotelAudit;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
@RequestMapping("/hotels")
@Controller
public class HotelController {
    private HotelDAO HotelService;
    @RequestMapping(method = RequestMethod.GET)
    public String list(Model uiModel) {
        List<HotelAudit> contacts = HotelService.findAll();
        uiModel.addAttribute("contacts", contacts);
        return "list";
    }
}

8a37f627a1d24d51b104713428fd2c7d.PNG
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:jsp="http://java.sun.com/JSP/Page"
     xmlns:c= "http://java.sun.com/jsp/jstl/core"
     version="2.0">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <jsp:output omit-xml-declaration="yes"/>
    <hl>Hotel Listing</hl>
    <c:if test="$(not empty hotels}">
        <table>
            <thead>
            <tr>
                <th>City</th>
                <th>Country</th>
            </tr>
            </thead>
            <tbody>
            <c:forEach items="$(hotels}" var="hotel">
                <tr>
                    <td>${hotel.city}</td>
                    <td>${hotel.country}</td>
                </tr>
            </c:forEach>
            </tbody>
        </table>
    </c:if>
</div>
  • Вопрос задан
  • 396 просмотров
Пригласить эксперта
Ответы на вопрос 1
DarkRaven
@DarkRaven
разработка программного обеспечения
Измените код метода контроллера на вот этот и проверьте.
@RequestMapping(value = "/", method = RequestMethod.GET)
public String list(Model uiModel) {
	List<HotelAudit> contacts = HotelService.findAll();
	uiModel.addAttribute("contacts", contacts);
	return "list";
}


  • Вы указали базовый урл, на который мапится контроллер, но не указали куда смотрит метод, поэтому, скорее всего и 404.
  • Еще момент, не нужно указывать базовый путь к представлению, достаточно указать относительный.


Вообще, я бы посоветовал вам изучить базовую информацию по работе со Spring Framework - там есть некоторые, важные моменты, которые могут помочь на начальном этапе.

Так же, при разработке представлений, советую обратить внимание, к примеру, на то, что тазывается Tags в JSP, это позволит заметно утилизировать (фу слово) код представлений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы