2

組み込みの Jetty サーバーを実行して Spring MVC アプリケーションをデプロイしようとしていますが、リソース マッピングの問題があります。特に、JSP を見つけられるように spring mvc コントローラーをマップできません。

構成:

  • 桟橋-8.1.8.v20121106
  • 春 3.2

Jetty サーバーの構成:

    Server server = new Server();

    ServletContextHandler context = new ServletContextHandler();
   //WebAppContext context = new WebAppContext();
    context.setBaseResource(Resource.newClassPathResource("webapp"));
    context.setClassLoader(Thread.currentThread().getContextClassLoader());
    context.setContextPath("/");

    AnnotationConfigWebApplicationContext webAppContext = new AnnotationConfigWebApplicationContext();
    webAppContext.register(WebFaceSpringConfiguration.class);
    webAppContext.setServletContext(context.getServletContext());
    webAppContext.setParent(applicationContext);

    context.addServlet(new ServletHolder(new DispatcherServlet(webAppContext)), "/");

    server.setHandler(context);
    server.setConnectors(jettyConnectors);

フォルダーwebappはクラスパスにありますが、そのような構成では/WEB-INF/pages/main-page.jsp (実際にはwebappの下にあります) にアクセスする際にエラーが発生します。そのため、コントローラー メソッドが呼び出されますが、ビューを解決できません。

Spring Dispatcher Servlet (/*) にWebAppContextとワイルドカード マッピングを使用しようとしましたが、役に立ちませんでした。コントローラー マッピングが無視されるか、JSP が見つかりません。

4

1 に答える 1

0

viewresolver を指定する必要があります。通常は xml でこれを調べます

 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/pages/" p:suffix=".jsp"/>
于 2013-04-26T11:50:56.907 に答える