2016-03-21 31 views
0

Spring MVCからhelloワールドページを作成しようとしています。ここで Spring MVCでテキストが正しく表示されない

は、ここに私の /WeeklyPickems/src/main/webapp/WEB-INF/config/servlet-config.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:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 

    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context.xsd"> 

<mvc:annotation-driven/> 
<context:component-scan base-package="com.lucentdigital.controller"/> 

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

である私のここ/WeeklyPickems/src/main/webapp/WEB-INF/web.xml

<!DOCTYPE web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/dtd/web-app_2_3.dtd" > 

<web-app> 
    <servlet> 
    <servlet-name>WeeklyPickemsServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/config/servlet-config.xml</param-value> 
    </init-param> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>WeeklyPickemsServlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 
    <display-name>Archetype Created W eb Application</display-name> 
</web-app> 

である私の/WeeklyPickems/src/main/java/com/lucentdigital/controller/HelloController.java

package com.lucentdigital.controller; 

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.RequestMapping; 


@Controller 
public class HelloController { 

    @RequestMapping(value="/greeting") 
    public String sayHello(Model model) { 

     model.addAttribute("greeting", "Hello World"); 

     return "hello"; 

    } 

} 

http://localhost:8080に移動すると、ブラウザが正しく/WeeklyPickems/src/main/webapp/index.jspをレンダリングするが、http://localhost:8080/WeeklyPickems/greeting.htmlに移動し、私はそれが404エラーを表示するために使用:

HTTP Status 404 - 
type Status report 
message 
description The requested resource is not available. 

は、今私は私のPATHおよびそれすべての作品を更新しましたが、それでも正しい「ハローが表示されません世界"。私は/WeeklyPickems/src/main/webapp/WEB-INF/jsp/hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
    <head> 
     <title>Title</title> 
    </head> 
    <body> 
     <h1>${greeting}</h1> 
    </body> 
</html> 

に以下の持っているWebページは、ページ上の単語「{あいさつ} $」を表示しています。 H1タグに「Hello World」を実際に表示するには、どのファイルを変更する必要がありますか?おかげさまで

+0

起動プロセスでコントローラがロードされていますか? – Koitoer

+0

$ JAVA_HOMEを環境変数として追加する必要がありました。しかし、今私は更新された応答を得ています。 –

答えて

0

あなたのサーブレット名はサーブレットコンテキストとは関係ありません。

このケースでは、あなたの質問に基づいて、あなたの文脈は/と信じています。

まず最初に行うには、変更され、あなたのurl-mappingから:

<servlet-mapping> 
    <servlet-name>WeeklyPickemsServlet</servlet-name> 
    <url-pattern>*.html</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>WeeklyPickemsServlet</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

にあなたのコントローラで説明したようにその呼び出し http://localhost:8080/greeting後。

+0

これを変更すると、 'http:// localhost:8080'はロードされません('/greeting'、 '/ greeting.html'、'/WeeklyPickems/greeting'、 '/WeeklyPickems/greeting.html ') –

+0

あなたの' web.xml'に ''タグがありますか? – josivan

0

pageisELIgnored="false"を追加して修正しました。結果のjspファイルは次のとおりです。

<%@ page isELIgnored="false" contentType="text/html;charset=UTF-8" language="java" %> 
<html> 
    <head> 
     <title>Title</title> 
    </head> 
    <body> 
     <h1>${greeting}</h1> 
    </body> 
</html>