2014-08-28 54 views
0

你好我想在春天3.2.8配置塊2框架的磚,但我得到以下異常下方的ServletException而配置在Spring MVC的3

Aug 28, 2014 11:51:30 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/emr_analytics] threw exception [Could not resolve view with name 'menu' in servlet with name 'dispatcher'] with root cause 
javax.servlet.ServletException: Could not resolve view with name 'menu' in servlet with name 'dispatcher' 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1190) 
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:855) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Unknown Source) 

我tiles.xml給出

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

<tiles-definitions> 
    <definition name="base.definition" template="/WEB-INF/pages/mainTemplate.jsp"> 
     <put-attribute name="title" value=""></put-attribute> 
     <put-attribute name="header" value="/WEB-INF/pages/header.jsp"></put-attribute> 
     <put-attribute name="menu" value="/WEB-INF/pages/menu.jsp"></put-attribute> 
     <put-attribute name="body" value=""></put-attribute> 
     <put-attribute name="footer" value="/WEB-INF/pages/footer.jsp"></put-attribute> 
    </definition> 

    <definition name="createUser" extends="base.definition"> 
     <put-attribute name="title" value="welcome to Floating Doctor"></put-attribute> 
     <put-attribute name="body" value="/WEB-INF/pages/user.jsp"></put-attribute> 
    </definition> 
</tiles-definitions> 

我的調度員servlet.xml中

<?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:context="http://www.springframework.org/schema/context" 
    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"> 
    <context:annotation-config /> 
    <context:component-scan base-package="com.sonata.controller" /> 

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

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

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
      <value> 
       org.springframework.web.servlet.view.tiles2.TilesView 
     </value> 
     </property> 
     </bean> 

     <bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles.xml</value> 
      </list> 
     </property> 
     </bean> 

    <bean id="messageSource" 
     class="org.springframework.context.support.ResourceBundleMessageSource"> 
     <property name="basename" value="messages"></property> 

    </bean> 
</beans> 

控制器在下面給出,

@RequestMapping("/login") 
    public ModelAndView login(
      @RequestParam(value = "username", required = false) String username, 
      @RequestParam(value = "username", required = false) String password) { 
     ModelAndView modelAndView = null; 
     System.out.println(username); 
     System.out.println(password); 
     String result = EmrService.login(username, password); 
     modelAndView = new ModelAndView("menu"); 
     /* 
     * ArrayList<Users> userlist = EmrService.getUsers(); 
     * modelAndView.addObject("userlist", userlist); 
     */ 

     return modelAndView; 

    } 

我已經經歷了同樣的問題,在堆棧溢出網站,但我沒有得到。 夥計們請幫幫我。 在此先感謝。

+1

頁面文件夾中是否有menu.jsp頁面? – 2014-08-28 07:00:18

+0

我已經在tiles.xml中添加了menu.jsp,並且它存在於WEB-INF/pages文件夾中,但仍然出現異常。 – Mukesh 2014-08-28 07:45:43

+0

@Mukesh嘗試在'tiles.xml'中添加此項,因爲您正在從'controller'返回view'menu' '<定義名稱=「菜單」> 2014-08-28 08:46:03

回答

0

您正在使用org.springframework.web.servlet.view.UrlBasedViewResolver通過傳遞視圖使用tiles

所以,當彈簧復位從Login方法背部,它試圖找到名字menu的觀點在tiles.xml文件,其目前從缺少解決您的tiles definition (tiles.xml)文件。

因此,請嘗試爲menu添加tiles definition (tiles.xml)來解決此問題。

+0

我已經添加了菜單.jsp位於tiles.xml中,它存在於WEB-INF/pages文件夾中,但仍然出現異常。 – Mukesh 2014-08-28 07:45:28

+0

@Mukesh請發佈你的'tiles.xml'並完成堆棧跟蹤(如果還沒有完成) – 2014-08-28 07:54:04

+0

@ ankur-singhal我已經發布了tiles.xml – Mukesh 2014-08-28 08:18:57