Spring javax.servlet.ServletException:无法解析名为';酒店/预订/输入预订详情&x27;在名为';旅行';
我试着看了几个关于StackOverflow的类似问题,但还是不太明白!这是我的第一个Spring应用程序,所以我很抱歉有一个可能重复的问题。任何帮助都将不胜感激 当我导航到enterDetails页面时,出现以下错误:-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
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;
}