2013-08-04 105 views
0

美好的一天。 我创建MVC-dipatcher-servlet.xml中Spring MVC不显示图像

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     "> 

    <mvc:resources mapping="/static/**" location="/static/images/, /static/css/" /> 

    <context:component-scan base-package="com.springapp.mvc"/> 

    <bean id="viewResolver" 
      class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
      <value> 
       org.springframework.web.servlet.view.tiles2.TilesView 
      </value> 
     </property> 
    </bean> 
    <bean id="tilesConfigurer" 
      class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tiles.xml</value> 
      </list> 
     </property> 
    </bean> 

</beans> 

在我的web应用程序创建 “静态” 文件夹,图片,JS,CSS在它的文件夹。

这里是我的web.xml:

<web-app version="2.4" 
     xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

     <display-name>Spring MVC Application</display-name> 

     <welcome-file-list> 
      <welcome-file>index.jsp</welcome-file> 
     </welcome-file-list> 

     <servlet> 
      <servlet-name>mvc-dispatcher</servlet-name> 
      <servlet-class> 
       org.springframework.web.servlet.DispatcherServlet 
      </servlet-class> 
      <load-on-startup>1</load-on-startup> 
     </servlet> 
     <servlet-mapping> 
      <servlet-name>mvc-dispatcher</servlet-name> 
      <url-pattern>/</url-pattern> 
     </servlet-mapping> 

     <servlet-mapping> 
      <servlet-name>default</servlet-name> 
      <url-pattern>/static/css/*</url-pattern> 
     </servlet-mapping> 
     <servlet-mapping> 
      <servlet-name>default</servlet-name> 
      <url-pattern>/static/js/*</url-pattern> 
     </servlet-mapping> 
    </web-app> 

而且tiles.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE tiles-definitions PUBLIC 
     "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" 
     "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"> 
<tiles-definitions> 
    <definition name="base.definition" 
       template="/WEB-INF/jsp/layout.jsp"> 
     <put-attribute name="title" value="" /> 
     <put-attribute name="header" value="/WEB-INF/jsp/header.jsp" /> 
     <put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" /> 
     <put-attribute name="body" value="" /> 
     <put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" /> 
    </definition> 

    <definition name="contact" extends="base.definition"> 
     <put-attribute name="title" value="Contact Manager" /> 
     <put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" /> 
    </definition> 

</tiles-definitions> 

如果我删除一行MVC:资源的开发 - 我的地盘工作,但<img src="<c:url value="/images/header_icon_02.png"/>" alt="" />标签不显示图片。但css/js文件女巫我包括

<link rel="stylesheet" type="text/css" href="<c:url value="static/css/style.css"/>" /> 

工作好。

如果我添加mvc:resourses - 网站总是返回404页面。我如何在我的项目中显示静态图像?

P.S.
这里是我的控制器:

@Controller 
public class HelloController { 
    @RequestMapping(value="/", method = RequestMethod.GET) 
    public String printWelcome(ModelMap model) { 
     model.addAttribute("message", "Hello world!"); 
     return "contact"; 
    } 
} 

回答

0

我已经解决了问题! 我需要添加 <mvc:annotation-driven />到我的MVC-dipatcher-servlet.xml中

0

我觉得你有关于这个问题的解决方案伟大的工作所有球员,我想在这里补充一些点,那就是

你应该必须为DispatcherServlet提供特定的url映射,以便servlet能够处理特定模式的请求,否则会产生问题。

可能是你将面临

No HTTP request handler found for " some url pattern" 

所以我请你加问题的具体URL模式(“*。做” ....等),而不是通用的(像你一样“/”)