0

MyController にコードがあります

 @RequestMapping("/hello.jsp")
    public void handleRequest() {
        System.out.println("hello.jsp");
        logger.info("Returning hello view");
    }

    @RequestMapping("/hello2")
    public ModelAndView hello2() {
        System.out.println("123");
        String message = "Hello World, Spring 3.0!";
        return new ModelAndView("hello2", "message", message);
    }

dispatcher-servlet.xml には次のものがあります。

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

最後に私は持っています:

~8080/hello2.htm - OK
~8080/hello.htm  - NOT OK, aloso I tried: hello.jsp, hello; moved hello.jsp to /WEB-INF/jsp/ and to/WEB-INF/ - no effect 


1.hello2() is working well, and redirecting to the hello2.jsp
2.hello() is NOT working, and NOT redirecting

「viewResolver」をdispatcher-servlet.xmlに入れる前は、反対の動作をしていました-hello()は機能していましたhello2()は機能していませんでした。[しかし、すべてのjpがWEB-INFフォルダーにありました]

理由は何ですか?

私のweb.xmlはこれで構成されています:

  <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>
4

2 に答える 2

0

「/hello.jsp」が原因でした。「viewResolver」を「suffix」value=".jsp" で定義したため、「/hello.jsp.jsp」を見つけようとしていました。

以前は、「viewResolver」がなければ、デフォルトのロジックで動作していたと思います。

于 2012-12-20T23:41:06.237 に答える
0

voidこれは、ビュー名の代わりに返されているためだと思います 。

@RequestMapping("/hello")
public String handleRequest() {
    System.out.println("hello.jsp");
    logger.info("Returning hello view");
    return("hello");
}
于 2012-12-20T21:18:43.690 に答える