3

私のjspsは WEB-INF/jsp/ の下にあり、以下は私の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>
  <display-name>Checkout</display-name>

  <servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>


</web-app>

そして、ここに私がアクセスしようとしているページproduct.jspのマッピングがあります:

@Controller
@RequestMapping("/product.action")
public class ProductController {

    /**
     * Show the product selection form
     * 
     * @return
     */
    @RequestMapping(method=RequestMethod.GET)
    public String get() {
        return "products.jsp";
    }

}

次のリンクからページにアクセスしようとすると:

http://localhost:8080/myapp/product.action

ブラウザに404アクセスすると、コンソールに次の警告が表示されます。

Jun 28, 2012 10:55:23 AM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/myapp/product.action] in DispatcherServlet with name 'myservlet'

構成に何か不足していますか? アドバイスしてください、ありがとう。

編集:私は運が悪いアプリケーション コンテキストに viewResolver Bean を追加しようとしました:

<?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: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/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">

    <context:component-scan base-package="com.myapp"/>



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


</beans>
4

8 に答える 8

3

スニールが言ったことは何でもルールに従ってください。あなたの春の設定xmlに、あなたが持っていない問題が1つあります

<mvc:annotation-driven />  

Controllerと一緒 に登録するには、これが必要です

<context:component-scan base-package="com.myapp"/>

于 2014-01-10T14:54:31.260 に答える
2

RequestMapping を指定する場合、URI に拡張子を付けないでください。Dispatcher サーブレットは、URI マッピングの検索中にリクエスト URI からそれを省略します。

使用@RequestMapping("/product") するとうまくいくはずです。

ビュー リゾルバを使用している場合の 2 番目のことは、JSP ファイルの名前を返すだけです。.jsp 拡張子を追加しないでください。InternalViewResolver が自動的に追加します。

于 2012-06-28T10:56:30.923 に答える
1

問題は、コントローラーが検出されなかったことです。ベースパッケージを から に変更しましたがcom.myappcom.myapp.controller現在は正常に動作しています。

于 2012-06-28T13:53:48.960 に答える
0

class="org.springframework.web.servlet.view.InternalResourceViewResolver"の代わりに、 この class="org.springframework.web.servlet.view.UrlBasedViewResolver"を使用してください

アプリケーションコンテキスト Bean で。

于 2013-07-01T09:31:37.183 に答える