我在Spring開發中很新。請諮詢我在我的迷你項目中錯過的內容。在main.Main類中通過註釋定義的Spring配置(參見下文)。 應用開始succesefull,與消息 「... RequestMappingHandlerMapping:映射 」{[/你好],方法= [GET]} ...「Spring Confit問題:將視圖映射到控制器錯誤(NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config)
但是當我tryed打開http://localhost:8080/hello?name=MyUserName頁,我收到錯誤消息:」 ... org.springframework.web.util.NestedServletException:處理程序處理失敗;嵌套異常是java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config ...「
對我來說,我沒有完成配置DispatcherServlet來將控制器輸出映射到View。 ?
這是main.Main類:
@Configuration
@EnableWebMvc
@ComponentScan({"controllers"})
@EnableAutoConfiguration
public class Main {
public static void main(String[] args){
SpringApplication.run(Main.class, args);
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("WEB-INF/views/");
viewResolver.setSuffix(".html");
return viewResolver;
}
}
有控制器用來處理用戶的請求:
@Controller
public class HelloController {
private static final String PAGE_URL = "/hello";
@RequestMapping(value = PAGE_URL,method = RequestMethod.GET)
public String getHelloMessage(@RequestParam("name") String name, Model model){
String str = (name == null) || name.equals("") ? "World" : name;
model.addAttribute("name", str);
return "hello";
}
}
這是View類(hello.html的)上文在/ WEB-INF/views /目錄中刪除 Class project structure for HelloController application
尊敬的弗朗索瓦,這真的很有幫助。現在解決了這個問題。但是現在出現了一些問題:「....在DispatcherServlet中使用URI [/WEB-INF/views/hello.html]找不到名爲'dispatcherServlet'的HTTP請求的映射...」看起來沒有映射到「hello.html」。但是這很奇怪,因爲我期望這段代碼必須配置DispatcherServlet來知道所有視圖(* .html):'code'@ Bean public InternalResourceViewResolver viewResolver(){ .... }我錯了嗎? – vzateychuk
如果您有新問題,請提出新問題,而不是更改現有的已回答問題。 – BalusC
對不起,我的錯,我完全清楚這個問題。 – vzateychuk