1

私はSpring-webmvcをMavenの依存関係に追加しました。いくつかのページによると、私はこれを使用する必要があることがわかりました:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>

正常に動作し、m2ローカルリポジトリにjarファイルが表示されます。

しかし、私の問題は、JSPファイルに「 "form:form"(org.springframework.web.servlet.tags.form.FormTag)のタグハンドラークラスがJavaビルドで見つかりませんでした」というエラーが表示されることです。道"。

明らかにorg.springframework.web.servletを探していますが、私が読んだいくつかの検索結果で述べたように、spring-webmvcを追加すると修正されると思いました。さらに、Spring Bean構成XMLで「org.springframework.web.servlet.view.UrlBasedViewResolver」を使用したので、spring-webmvcの一部がロードされていることがわかります。

repo1.maven.orgとmvnrepository.comを見たことがありますが、org.springframework.web.servletについて言及されているのを見たことがありません。

次に、springsourceページ(http://ebr.springsource.com/repository/app/bundle/version/detail?name=org.springframework.web.servlet&version=3.1.3.RELEASE)に従ってweb.servletを追加することにしました。

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>org.springframework.web.servlet</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>

しかし、「アーティファクトorg.springframework:org.springframework.web.servlet:jar:3.1.3.RELEASEがありません」というエラーが表示されます。

springsource独自のリポジトリ(http://ebr.springsource.com/repository/app/faq)をpom.xmlに追加しましたが、同じ「アーティファクトがありません」というメッセージが表示されます。

私は立ち往生していて、あなたの助けが必要だと思います。ありがとう :)

これが適切かどうかはわかりませんが、3つのXML構成ファイルを含めました。:)

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>Spring3MVC</display-name>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
</web-app>

spring-servlet.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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="org.flinders.staffdirectory.controllers" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" >
            <value>org.springframework.web.servlet.view.tiles2.TilesView</value>
        </property>
    </bean>

    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
        <property name="definitions">
            <list>
                <value>/WEB-INF/tiles.xml</value>
            </list>
        </property>
    </bean> 
  </beans>

pom.xml

<project
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.flinders.staff.directory</groupId>
  <artifactId>directory-maven</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>directory-maven Maven Webapp</name>
  <url>http://maven.apache.org</url>

    <properties>
        <org.springframework.version>3.1.3.RELEASE</org.springframework.version>
    </properties>

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>antlr</artifactId>
            <version>3.0</version>
        </dependency>

        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework.version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.5.8</version>
        </dependency>

        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>2.2.2</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>directory-maven</finalName>
    </build>
</project>
4

3 に答える 3

1

modelAttributeをフォームに渡すのを忘れたようです:

return new ModelAndView("search/SearchForm", "search", new Search());
于 2012-12-06T05:16:18.817 に答える
1

私は通常、このページディレクティブをファイルの先頭に配置します。

<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

これにより、フォームtaglibがJSPにロードされていることを確認する必要があります。

于 2012-12-12T21:21:04.720 に答える
0

ファイルの最初の行にtaglibディレクティブを追加することで、問題を解決できました。

于 2015-01-30T21:18:04.750 に答える