2016-10-13 64 views
0

SpringやIntelljの両方で経験が不十分なことが原因で混乱する問題がありましたが、インターネットとSOとその多くを検索した後、修正するためにここで行く。SpringとIntelljの使用時にMVCビューを解決できない

簡単に言えば、Spring/Hibernate/Mavenでいくつかの経験を積むために取り組んでいるサンプルアプリケーションがあります。それは正常に動作します(期待どおりのページをロードするなど)が、コードでは、私はMVCビューを解決できないIDEのためにたくさんのフラグを持っています。 。

セットアップでは、次のリスナー構成で完全にJavaの設定を使用してweb.xmlはありません。

@Override 
    public void configureViewResolvers(ViewResolverRegistry registry) { 

     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 
     viewResolver.setViewClass(JstlView.class); 
     viewResolver.setPrefix("/WEB-INF/views/"); 
     viewResolver.setSuffix(".jsp"); 
     registry.viewResolver(viewResolver); 
    } 

、ここでそれはUSERSLISTが見出されていない問題のビューであるとMVCビューを

@RequestMapping(value = { "/", "/list" }, method = RequestMethod.GET) 
    public String listUsers(ModelMap model) { 

     List<User> users = userService.findAllUsers(); 
     model.addAttribute("users", users); 
     model.addAttribute("loggedinuser", getPrincipal()); 
     return "userslist"; 
    } 

を解決できないことフラグコードの一例を示します。

私はそれが欠けている春のプラグインではないことをかなり確信している間、のpom.xmlはまたIntellJ、2016.2の最新バージョンを使用して、バージョン4.2.5

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

を使用して、以下のバネ成分を有します。 4が登録されている。

+0

このように、コードは機能していますが、IntelliJの警告について不安ですか? – Mechkov

+0

@Mechkov効果的にそれはそれを集計する良い方法です。それはもちろん、何もないかもしれませんが、私はむしろ、道に沿って尻を噛んでいるのを見つけるのではなく、理由を引用して確認しています。 – canadiancreed

答えて

1

考えられる解決策(スクリーンショットのために回答を書く必要があります): モジュールのファセットを設定していません。 プロジェクト構造ダイアログを開きます。 左側のModulesエントリに移動し、Springファセットを追加します。 これを実行した場合は、スプリング構成を追加できます。 project structure dialog

アイデアは、私はItellijが正しくViewResolver豆を認識しないbecouseこの問題が発生したと思わ未登録の春のコンフィグ(このようなもの)

+0

それだけで試してみましたが、悲しいことにサイコロはありません。 3つのjavaファイルを用意していましたが、それらを追加してTomcatをリブートすると、発生した問題に関しては何もしませんでした。 – canadiancreed

+1

Tomcatを再起動することは効果がありません。なぜなら、私たちはIDE機能について「ちょうど」話しているからです。他のものを含む「メイン」設定ファイルがありますか? 3つ(A、B、C)の3つを追加し、AにBとCが含まれている場合は、IntelliJのPOV情報と別の警告が重複している可能性があります。考えられる別の問題は、IntelliJが 'viewname'を' WEB-INF/viewname.jsp'にマッチさせることができないことです。現在私は、これを確認するための手作りのSpring MVCプロジェクトはありません。 – meistermeier

0

があることを通知している必要があります。 viewResolverの設定を次のように変更してみてください。

@Configuration 
@EnableWebMvc 
@ComponentScan("com.app") 

public class WebConfig extends WebMvcConfigurerAdapter{ 
    @Bean 
    public InternalResourceViewResolver resolver(){ 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setPrefix("/WEB-INF/views/"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
    } 

    public void configureDefaultServerletHandling(DefaultServletHandlerConfigurer configurer){ 
     configurer.enable(); 
    } 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry){ 
     registry 
       .addResourceHandler("/resources/**") 
       .addResourceLocations("/resources/"); 
    } 
} 
関連する問題