0

私はSpringフォームを機能させようとしていました.Spring MVCのみを使用しています.Springフォームタグを追加しようとするmodelAttributeと失敗し、ContextLoaderListener見つからなかったと表示されます.

これは、フォームを作成するための私の JSP コードです。

<sf:form method="POST" cssClass="form-horizontal" modelAttribute="companySearch">

そして、これが私の豆を見つける方法であり、私のmvcは注釈駆動型です

<context:component-scan base-package="com.mubasherjson.controllers" />
<context:annotation-config />
<bean id="companySearch" class="com.mubasherjson.models.CompanySearch" />
<mvc:annotation-driven />

これはポストメソッドの私のコードです

@RequestMapping(method = RequestMethod.POST)
    public String showResultPage(Model model){
        model.addAttribute(new CompanySearch());
        return "result";
    }

@ModelAttribute アノテーションでも試しましたが、まだ何も機能しません。アクション属性もフォームに追加しましたが、まだうまくいきません。このメソッドのルートパスは「/」です

ここで ContextLoaderListener を作成する必要があるのはなぜですか? 基本的に、CompanySearch はモデルであり、単純な POJO です。フォームまたはコメントを削除すると、すべて正常に動作します。ここで何が問題になっているようです。ここでさまざまな質問を確認しましたが、私の場合はまだわかりません

4

1 に答える 1

0

Spring のルート WebApplicationContext を起動するためのブートストラップ リスナー。ContextLoader に委譲するだけです。

Doc
コンテナから呼び出されるサーブレットリスナーです。これにより、アプリケーション コンテキストが作成され、XML Bean 定義ファイルが読み込まれます。それはすべてがそれから始まり、それを持たなければならないことを意味します。

あなたはそれを定義することができます

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

ContextLoaderListener と DispatcherServlet

Spring MVC には、2 つのコンテキストがあります。1 つは、ContextLoaderListener によって起動されるアプリケーション コンテキストまたはグローバル コンテキストです。contextConfigLocation パラメーターに記載されているすべての構成ファイルを使用します。
Spring MVC を使用している場合は、Web アプリケーション コンテナーとも呼ばれる別のコンテナーを起動する Dispatcher サーブレットが必要です。このコンテナーは、グローバル コンテナーを親として受け取ります。
バックエンドでのみ Spring を使用している場合は、グローバル コンテキストで十分です。ただし、Spring MVC をフロントエンドにも使用している場合は、Dispatcher Servlet も必要です。

( http://www.coderanch.com/t/516563/Spring/DispatcherServlet-ContextLoaderListenerからコピーしました。私は怠け者で、すでにたくさんのものがあります)

于 2013-04-10T10:49:00.187 に答える