2016-02-08 133 views
0

潤泉4控制器我嘗試運行一個簡單的代碼,但似乎無法得到它的工作,並調用控制器請求資源時,在Tomcat

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.mypackage") 
public class AppConfig extends WebMvcConfigurerAdapter { 
    public void configureViewResolvers(ViewResolverRegistry registry) { 

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

    /** 
    * Configure ResourceHandlers to serve static resources like CSS/ Javascript etc... 
    */ 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
    } 

} 

這是我的配置文件,然後我有在com.mypackage控制器如下:

@Controller 
@RequestMapping("/") 
public class testControler { 

    @Autowired 
    AppDataService appDataService; 

    @RequestMapping(value = "/hello") 
    public Model register(Model model){ 


     model.addAttribute("name", "Y"); 
     return model; 
    } 

    @RequestMapping("/") 
    public String index(ModelMap model){ 

     Date start = new Date(); 
     System.out.println(start); 
     List<AppData> app = appDataService.getListAppData(); 
     Date end = new Date(); 
     System.out.println(end); 

     String result = ""; 
     for (Object a : app) { 
      result+=a+" <br>"; 
     } 
     model.addAttribute("name", result); 

     return "hello"; 
    } 
} 

和我已經添加了hello.jsp。當我通過eclipse在tomcat服務器上運行項目時,我沒有得到hello.jsp,但我找不到資源,錯誤。 我不知道我在做什麼不正確,因爲我應該如何理解它,因爲@RequestMapping("/")因爲我應該得到啓動頁面,因此我不知道什麼是錯誤或者哪裏出了問題。

我也有web.xml的註解版本如下:

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

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

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return null; 
    } 

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

} 
+0

什麼是在web.xml中 - servlet的標籤? –

+0

web.xml文件爲空 –

+0

將'AppConfig'移至'getServletConfigClasses'。 –

回答

0

1)。除去一個更@RequestMapping("/")以上testControler類,因爲它產生雙映射,因爲它已經存在於index()方法。 2)。修改您的configureViewResolvers()返回ViewResolver對象。 然後你@Bean標註爲:

@Bean 
public ViewResolver configureViewResolvers() { 

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

像這樣:

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "com.mypackage") 
public class AppConfig extends WebMvcConfigurerAdapter { 
    @Bean 
    public ViewResolver configureViewResolvers() { 

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

    /** 
    * Configure ResourceHandlers to serve static resources like CSS/ Javascript etc... 
    */ 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
    } 

} 
+0

沒有改變任何東西 –

+0

把'hello.jsp'放在WEB-INF –

+0

下的'views'文件夾中已經存在於WEB-INF –

0

繼爲我工作:

public void configureViewResolvers(ViewResolverRegistry registry) { 
    registry.jsp("/WEB-INF/views/", ".jsp"); 
} 
相關問題