0

私はSpring MVCが初めてで、EclipseでMavenを使用してSpring 3.2プロジェクトを作成しました。Javaベースの構成用にAbstractAnnotationConfigDispatcherServletInitializerクラスを実装しています。

pom.xmlに次のプラグインと依存関係があります

<build>
        <plugins>
            <!--source level should be 1.6 (which is not Maven default) for java EE 
                6 projects, so let's change it -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <!-- When using xml-less approach, you need to disable Maven's warning 
                about missing web.xml -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
      <!--We need servlet API for compiling the classes. Not needed in runtime
-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--adding spring mvc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.2.4.RELEASE</version>            
        </dependency>       
        <!-- Add Taglib support -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>           
    </dependencies>

初期化クラスは……

public class Initializer extends AbstractAnnotationConfigDispatcherServletInitializer{

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebappConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }       
}

WebappConfigクラスは……

@Configuration
@ComponentScan(basePackages={"com.sandip.controllers"})
@EnableWebMvc
public class WebappConfig extends WebMvcConfigurerAdapter{


    //add view Resolver, Tell SpingMVC where to find view scripts
        @Bean
        public InternalResourceViewResolver setupViewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/views/");
            resolver.setSuffix(".jsp");

            return resolver;
        }
}

そして最後に、私はHomeControllerを持っています........

@Controller
public class HomeContoller {      

  @RequestMapping(value = "/", method = RequestMethod.GET)
  public String home() {
    return "home";
  }  
}

mavenビルド後にjettyでこのプロジェクトを実行すると、ブラウザに次の出力が表示されます.....

ここに画像の説明を入力

springZeroXml は私のプロジェクト名です。コンソールにエラーはありません。助けてください ..........

4

1 に答える 1

1

私はたくさんのグーグル検索を行い、WebAppConfig の WebMvcConfigurerAdapter クラスの addViewControllers メソッドをオーバーライドする必要があることを知りました。そしてコードは........

@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
    }
于 2013-10-13T19:01:03.360 に答える