CSS没有反映Maven构建Spring-Hibernate项目

时间:2014-05-16 05:47:50

标签: css spring maven spring-mvc web.xml

我在Eclipse中使用Eclipse M2E插件在Maven上构建了一个Spring-Hibernate项目。虽然我的功能很好,但我需要给应用程序一些视觉吸引力,我希望使用CSS。但是,我的CSS从未反映过该应用程序。我已经尝试在stackoverflow上查看一些密切相关的问题,但无法正确使用它。

Spring not finding resource files (css, jsp...)

External CSS does not load in web page

这是我尝试过的(jsp本身的很多命中和试验):

的index.jsp

> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html
> xmlns="http://www.w3.org/1999/xhtml"> <%@page contentType="text/html"
> %>
> 
> <%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@page
> session="true"%> <html> <head> <link rel="stylesheet"
> href="${pageContext.request.contextPath}/styles.css" /> <link
> rel="stylesheet" href="styles.css" /> <link rel="stylesheet"
> href="<c:url value="style.css"/>"  type="text/css" />   

    <!-- even tried this with some reference I got somewhere, 
while this atleast gave the body the color as mentioned in CSS, 
nothing else worked including the form fields-->

<style>
<%@include file="styles.css"%>
</style>
</head>

的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

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

    <!-- Spring MVC -->
    <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>*.css</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/spring-security.xml
        </param-value>
    </context-param>

    <!-- Spring Security -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

Controller中的请求映射:

@RequestMapping("/")
public ModelAndView welcomePage(Map<String, Object> map) {

    ModelAndView model = new ModelAndView();
    model.setViewName("index");

    // more code

    return model;

}

2 个答案:

答案 0 :(得分:0)

您需要确保您的css文件位于正确的位置。 例如,这是我使用的结构:

\webapp\resources\css\mycss.css
\webapp\resources\images
\webapp\WEB-INF\

在我的jsp中我引用了这样的css:

<link href="<c:url value="/resources/css/mycss.css"/>" rel="stylesheet">

使用spring-mvc,您还需要指定资源的位置,在spring-mvc.xml文件中添加:

<mvc:resources location="/resources/" mapping="/resources/**" />

答案 1 :(得分:0)

感谢您的回复,Fellas。

虽然

<style>
<%@include file="styles.css"%>
</style>
早些时候在JSP中为我做了一半的工作,我遇到的问题是找不到CSS中引用的.jpg文件的映射。

添加

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>

为我解决了剩下的问题。虽然我还没有在页面上获得BG图像,但其余的风格,即颜色和字体都能正常工作。进一步观察以提高视觉吸引力。