我试图用JSP制作一个简单的网页。我的问题是没有找到像图像或CSS那样的资源,无论我使用哪个URL。
我的JSP非常简单:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="SHORTCUT ICON" href="img/logo.ico" />
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
<div id="banner">
<div id="banner-wrapper">
<div id="appname">
<a href="" >
<img alt="logo-cloudapi" height="50px" src="/logo.png">
</a>
ABC
</div>
<div id="a">
<img alt="logo2" height="50px" src="/logo2.jpg">
</div>
</div>
</div>
</body>
我尝试了以下网址:
<link rel="stylesheet" href="../css/style.css">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css">
没有任何作用。
以下是我的src文件夹的结构:
我没有使用web.xml而是使用java配置文件。
配置:
package com.websystique.springmvc.configuration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.websystique.springmvc")
public class HelloWorldConfiguration {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
}
初始化程序
package com.orange.paddock.gofr.provider.ihm.configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { HelloWorldConfiguration.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return null;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
我已经找到很多关于这个主题的帖子,但是没有人适合我。
请问有什么解决方案?
答案 0 :(得分:0)
您的项目结构是什么?
“HTML,css,javascript等所有静态文件都将直接放在Web应用程序根目录下。如果我们想让这些文件安全,我们需要将这些文件放在WEB-INF目录下。”
“所有JSP文件都可以直接放在根目录或WEB-INF文件夹的子文件夹内。当放在WEB-INF或其子文件夹中时”
答案 1 :(得分:0)
我认为具有webapps资源的文件夹,例如.html,.jsp文件以及css和js被错误地引用。检查文件夹路径。那应该是:<link href="path to your css folder/styles.css">
答案 2 :(得分:0)
使用mvc静态资源在网址上映射静态资源。
<mvc:resources mapping="/resources/**" location="/resources/, /WEB-INF/static/" />
例如:
(xml conf)
<mvc:resources mapping="/css/**" location="/css/" />
(基于java的conf)
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("(/resources/");
}
}
无论如何,将它们放在webapp中就足够了。