我正在學習Spring的java配置,並且想在我的.jsp頁面中顯示圖像。我搜索了很多。這個問題很受歡迎,但仍然沒有答案幫助我。圖像仍然不出現。我會很高興有人能幫助我。在JSP中顯示圖像(Spring 3 java配置)
我的目錄樹:
-src
--main
---java
----com
-----app
------controller
-------MainController.java
------springconfig
-------WebConfig.java
--webapp
---resources
----images
-----11706.jpg
----styles
---WEB-INF
----view
-----home.jsp
----web.xml
---index.jsp
MainController.java
@Controller
@RequestMapping("/home")
public class MainController {
@RequestMapping(method = RequestMethod.GET)
public String loadHomePage(Model m) {
m.addAttribute("name", "CodeTutr");
return "home";
}
}
WebConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.app.controller")
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public InternalResourceViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
return resolver;
}
}
回到Home.jsp
<!DOCTYPE HTML>
<html>
<head>
<title>Sample Application</title>
</head>
<body>
<h1>Hello, ${name}!!!</h1>
<img src="/resources/images/11706.jpg" />
</body>
</html>
的web.xml
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.app.springconfig</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
對不起這麼多的代碼片段。希望它能幫助解決問題
應該在哪裏的資源文件夾應該是在web應用程序文件夾? –
在這個例子中,是的,在webapp文件夾的根目錄下。雖然'resources'是一個特別糟糕的名字 - 因爲這是maven用來表示不同的概念。我認爲一個更現代的名字就像'assets'。然而,無論如何,JSP是毫無意義的,所以無論你用它做什麼都是基本錯誤的。 –
那麼正確的方法是什麼? 我卡在顯示圖像 –