1

しばらくの間、Spring フレームワークを使用して Web アプリを開発していましたが、すべてうまくいきました。しかし最近、自分のページにいくつかの ajax 呼び出しを導入する必要があることが判明しました。いくつかのグーグル検索の後、Tiles2 は、パラメーター 'fragments=nameOfTile' を使用して、ajax 呼び出しが受信されている間、ビューを解決するための優れたサポートを提供することがわかりました。これを実現するには、org.springframework.js.ajax.AjaxUrlBasedViewResolverwhich と org.springframework.js.ajax.tiles2.AjaxTilesView を使用する必要があります。

以下は、ビュー リゾルバーの構成です (TILES.3.0.1 を使用していることに注意してください)。

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <property name="definitions" value="WEB-INF/tiles-config.xml"/>
</bean>
<bean id="ajaxViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver" p:order="0">
        <property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView"/>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" p:order="1">
</bean>

私がこれを使用していなかったときに前に述べたように:

<bean id="ajaxViewResolver" class="org.springframework.js.ajax.AjaxUrlBasedViewResolver" p:order="0">
        <property name="viewClass" value="org.springframework.js.ajax.tiles2.AjaxTilesView"/>
</bean>

すべて問題ありませんでしたが、コードに ajaxViewResolver を導入したとき。私が要求したページ (通常および ajax 呼び出し) に対して、次の応答が返されます。

HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/tiles/TilesApplicationContext

だから私の質問は:

  • Tiles3 と一緒に AjaxUrlBasedViewResolver を使用できますか?
  • はいの場合、問題を解決する方法と原因は何ですか?
  • そうでない場合、これに対する「準備ができている」ソリューションはありますか?

助けてくれてありがとう、K

編集 #1: @Bar は次のように述べています。

さて、依存関係マネージャーとしてmavenを使用しています。以下に、私の pom.xml を示します。

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.2.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
      </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-jsp</artifactId>
        <version>3.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.webflow</groupId>
        <artifactId>spring-webflow</artifactId>
        <version>2.3.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator-annotation-processor</artifactId>
      <version>4.1.0.Final</version>
    </dependency>

したがって、それを含める必要があります。

4

2 に答える 2

0

tiles-coretiles-api の依存関係が欠落していると思います。

tiles-apiには欠落しているクラスが含まれています。

<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-core</artifactId>
    <version>3.0.1</version>
</dependency>

<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-api</artifactId>
    <version>3.0.1</version>
</dependency>
于 2013-07-18T10:57:02.150 に答える