SpringMVC中在方法中注解之后,跳转到jsp,如下:

sj13823420859 2015-10-29 04:00:24
@Controller
@RequestMapping("/article")
public class ArticleController extends AbstractController {

@Resource(name="articleDao")
private ArticleDao articleDao;

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception {
System.out.println(request.getRequestURI());
return new ModelAndView("index");
}

@RequestMapping(value="/showArticles")
public ModelAndView getAllArticleAtPage(HttpServletRequest req, int pageIndex){
System.out.println("showArticles");
Collection articles = this.articleDao.getArticlesOfPage(pageIndex);
req.setAttribute("articles", articles);
return new ModelAndView("index");
}
}

我访问article/showArticles,页面是跳过去了,但是在jsp中无法加载css文件,css文件路径总是会自动加上article前缀

比如,jsp中引入了一个css/base.cass,但是我在浏览器中查看源码,然后点进这个css文件的时候,浏览器标题框显示的是article/css/base.css,导致了css文件没有加载进来,因为我css文件明明是放在根目录下的,这个问题要怎么处理。
...全文
255 1 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
eewcee 2015-10-30
为么没jsp的语法高亮
回复
eewcee 2015-10-30
这涉及到 基础路径的问题 你访问的url是 app/article/xxx.do的时候再没有配置<base href=" <%=http://xxxx/app%>">基础路径的时候 默认就从app/article 开始。 这个问题我建议你抽取公共jsp 如common.jsp [code=jsp] <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:set value="${pageContext.request.contextPath}" var="p" /> [/code] 然后在你的页面进行引用,设计到路径问题的一律带上${p}前缀就可以了。 [code=jsp] <%@ include file="../common.jsp"%> <link rel="stylesheet" type="text/css" href="${p }/css/main.css" /> [/code]
回复
如楼上,得过滤、 <mvc:resources mapping="/css/**" location="/WEB-INF/css/" />
回复
lxbccsu 2015-10-30
当然,如果静态资源是放在WEB-INF下,Spring MVC对于静态资源处理,可以采用<mvc:resources>静态资源映射的方式; 例如: <mvc:resources mapping="/images/**" location="/WEB-INF/images/" /> <mvc:resources mapping="/css/**" location="/WEB-INF/css/" /> <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
回复
lxbccsu 2015-10-30
引用 3 楼 sj13823420859 的回复:
这个方法我之前用过不行,不过刚才我试了一下,好像又可以了。 真是奇葩
你可以去了解下相对路径和绝对路径的区别; 如果你的静态资源都是在Web应用的跟路径下,JSP中引用静态资源文件都可以这么写: <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/base.cass" /> 即加上<%=request.getContextPath()%>,就可以解决问题了;
回复
sj13823420859 2015-10-29
引用 1 楼 rui888 的回复:
<servlet-mapping> <url-pattern>/</url-pattern> </servlet-mapping> url-pattern 配置对吗 或者 你 css url 前加上 <base 测试 看看
这个方法我之前用过不行,不过刚才我试了一下,好像又可以了。 真是奇葩
回复
这种有很多解决办法的 1、Spring MVC程序中得到静态资源文件css,js,图片文件的路径问题总结 2、静态文件路径写绝对路径参考
回复
兔子托尼啊 2015-10-29
<servlet-mapping> <url-pattern>/</url-pattern> </servlet-mapping> url-pattern 配置对吗 或者 你 css url 前加上 <base 测试 看看
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-29 04:00
社区公告
暂无公告