Spring javax.servlet.ServletException:无法解析名为';酒店/预订/输入预订详情&x27;在名为';旅行';

Spring javax.servlet.ServletException:无法解析名为';酒店/预订/输入预订详情&x27;在名为';旅行';,spring,spring-3,spring-webflow-2,Spring,Spring 3,Spring Webflow 2,我试着看了几个关于StackOverflow的类似问题,但还是不太明白!这是我的第一个Spring应用程序,所以我很抱歉有一个可能重复的问题。任何帮助都将不胜感激 当我导航到enterDetails页面时,出现以下错误:- Exception thrown by application class 'org.springframework.web.servlet.DispatcherServlet.render:1029' javax.servlet.ServletException: Coul

我试着看了几个关于StackOverflow的类似问题,但还是不太明白!这是我的第一个Spring应用程序,所以我很抱歉有一个可能重复的问题。任何帮助都将不胜感激

当我导航到enterDetails页面时,出现以下错误:-

Exception thrown by application class 'org.springframework.web.servlet.DispatcherServlet.render:1029'
javax.servlet.ServletException: Could not resolve view with name 'hotels/booking/enterBookingDetails' in servlet with name 'travel'
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1029)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)
at [internal classes]
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207)
at [internal classes]
这是控制器:-

@RequestMapping(value = "hotels/booking", method = RequestMethod.GET)
public String bookingDetails(@RequestParam Long hotelId, Model model) {     
    Booking booking = bookingService.createBooking(hotelId,"keith");
    model.addAttribute(booking);
    return "hotels/booking/enterBookingDetails";
}
servlet-context.xml

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

    <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->

    <!-- Configures the Spring MVC @Controller programming model -->
    <annotation-driven />

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
    <resources mapping="/resources/**" location="/resources/" />

    <!-- Configures a handler for serving static resources by forwarding to the Servlet container's default Servlet. -->
    <default-servlet-handler />

    <!-- Maps view names to Tiles Definitions with support for partial re-rendering -->
    <beans:bean id="viewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver">
        <beans:property name="viewClass" value="org.springframework.webflow.mvc.view.FlowAjaxTilesView"/>
    </beans:bean>

    <!-- Initializes the Apache Tiles CompositeView system -->
    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
        <beans:property name="definitions">
            <beans:value>
                /WEB-INF/**/tiles.xml
            </beans:value>
        </beans:property>
    </beans:bean>

    <!-- Configures Spring Web FLow
    <beans:import resource="webflow.xml" /> -->

    <!-- Configures transaction management around @Transactional components -->
    <tx:annotation-driven />

    <!-- Imports the application controllers that process client requests -->
    <beans:import resource="controllers.xml" />


</beans:beans>


我是新来的,但我一直在从事一些spring MVC项目。所以我希望能为解决你的问题做出贡献

我将更改您的控制器,使其能够使用ModelAndView对象,以便您可以执行以下操作:

    @RequestMapping(value = "hotels/booking", method = RequestMethod.GET)
    public ModelAndView bookingDetails(@RequestParameter Long hotelId) {  

    ModelAndView model = new ModelAndView("enterBookingDetails");
    Booking booking = bookingService.createBooking(hotelId,"keith");
    model.addObject("booking", booking);
    return model;
}

我是新来的,但我一直在做一些SpringMVC项目。所以我希望能为解决你的问题做出贡献

我将更改您的控制器,使其能够使用ModelAndView对象,以便您可以执行以下操作:

    @RequestMapping(value = "hotels/booking", method = RequestMethod.GET)
    public ModelAndView bookingDetails(@RequestParameter Long hotelId) {  

    ModelAndView model = new ModelAndView("enterBookingDetails");
    Booking booking = bookingService.createBooking(hotelId,"keith");
    model.addObject("booking", booking);
    return model;
}

如果您在项目结构中包含jsp文件的位置,这可能会有所帮助。您可以发布相关的tile.xml以及视图的定义吗?我将在周一上午发布这两个文件!我真是太蠢了,竟然没有把他们包括在帖子里!!两个都加了!如果您在项目结构中包含jsp文件的位置,这可能会有所帮助。您可以发布相关的tile.xml以及视图的定义吗?我将在周一上午发布这两个文件!我真是太蠢了,竟然没有把他们包括在帖子里!!两个都加了!谢谢你的回复!我刚刚试过这个,但不幸的是我仍然得到完全相同的错误!对不起,我看到我的代码出错了,所以我改了。我还注意到,您正在使用“hotels/booking/enterBookingDetails”调用视图,但是我认为您可能只需要调用名称,因为您正在使用已声明路径的互动程序。问题实际上是使用“hotels/booking/enterBookingDetails”而不是“enterBookingDetails”调用视图。刚才做了,它开始工作了!也许你会想更新原始答案,我会接受它作为答案!谢谢你,伙计!伟大的我已经更新了答案,很高兴能帮上忙!谢谢你的回复!我刚刚试过这个,但不幸的是我仍然得到完全相同的错误!对不起,我看到我的代码出错了,所以我改了。我还注意到,您正在使用“hotels/booking/enterBookingDetails”调用视图,但是我认为您可能只需要调用名称,因为您正在使用已声明路径的互动程序。问题实际上是使用“hotels/booking/enterBookingDetails”而不是“enterBookingDetails”调用视图。刚才做了,它开始工作了!也许你会想更新原始答案,我会接受它作为答案!谢谢你,伙计!伟大的我已经更新了答案,很高兴能帮上忙!
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/META-INF/spring/root-context.xml</param-value>
    </context-param>

    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- Enables use of HTTP methods PUT and DELETE -->
    <filter>
        <filter-name>httpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>httpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- Secures the application 
    <filter>
        <filter-name>springSecurity</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetBeanName</param-name>
            <param-value>springSecurityFilterChain</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>springSecurity</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>-->

    <!-- Handles all requests into the application -->
    <servlet>
        <servlet-name>travel</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:/META-INF/spring/travel/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

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

</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
    "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
    "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">

<tiles-definitions>

    <definition name="enterBookingDetails" extends="standardLayout">
        <put-attribute name="body" value="/WEB-INF/views/hotels/booking/enterBookingDetails.jsp"/>
    </definition>

    <definition name="reviewBooking" extends="standardLayout">
        <put-attribute name="body" value="/WEB-INF/views/hotels/booking/reviewBooking.jsp" />
    </definition>

</tiles-definitions>
    @RequestMapping(value = "hotels/booking", method = RequestMethod.GET)
    public ModelAndView bookingDetails(@RequestParameter Long hotelId) {  

    ModelAndView model = new ModelAndView("enterBookingDetails");
    Booking booking = bookingService.createBooking(hotelId,"keith");
    model.addObject("booking", booking);
    return model;
}