spring mvc通过ModelAndView跳转界面CSS js样式丢失

本文介绍了一个Spring MVC项目中登录界面跳转后JS和CSS样式丢失的问题及解决办法。涉及Spring MVC配置、视图解析器设置及前端资源加载等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做一个简单的登录界面卡了半天,在这里简单记录解决办法 


目录结构如下,jsp界面放在WEB-INF目录下面


登录界面


点击登录之后没有判断是否正确,直接通过spring-mvc跳转到hello.jsp界面

跳转后js和css样式丢失  



更改后的界面


spring-mvc文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">


	<!-- 扫描包 -->
	<context:component-scan base-package="com.my.temp.*"></context:component-scan>
	
	<!-- 支持注解  -->
	<mvc:annotation-driven />
	<!-- 静态资源 -->
	<mvc:default-servlet-handler/>
	
	<!-- 视图前缀后缀  -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

</beans>

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"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>temp</display-name>


	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/spring.xml</param-value>
	</context-param>

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

	<servlet>
		<servlet-name>spring-mvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring/spring-mvc.xml</param-value>
		</init-param>
		 <load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>spring-mvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<filter>
        <filter-name>shiroFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
        <init-param>
            <param-name>targetFilterLifecycle</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

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

	<error-page>
		<location>/index.jsp</location>
	</error-page>

</web-app>

因为主要是集成springmvc和shiro所以并没有集成java的三大框架

登录界面代码   这里主要是跳转界面,不管登录成功还是失败都要跳转

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>temp</title>
<%@include file="/core/top.jsp"%>
</head>
<body>
	<div style="width: 280px; max-width: 400px; border: 1px solid #24201F;position: absolute; top:200px;left:500px">
		<form id="ff" method="post" style="text-align: center;" action="sys/logon/logon">
			<table>
				<br/>
				<tr>
					<td style="width: 80px">用户名:</td>
					<td><input class="easyui-textbox" name="username"
						data-options="iconCls:'icon-search'"></td>

				</tr>
				<tr>
					<td stysle="height:10px"></td>
				</tr>
				<tr>
					<td>密码:</td>
					<td><input class="easyui-textbox password"  name="password"
						data-options="iconCls:'icon-search'"></td>
				</tr>
				<tr>
					<td style="height:10px"></td>
				</tr>
				<tr>
					<td colspan="2"><a id="btn" href="#" class="easyui-linkbutton" onclick="submitFrom()"
						data-options="iconCls:'icon-search'" >登录</a>
						    
						<a id="btn" href="#" class="easyui-linkbutton" onclick="clearForm()"
						data-options="iconCls:'icon-search'">清空</a></td>
				</tr>
			</table>
		</form>
	</div>
	<script>
		function submitFrom(){
			$('#ff').form({    
			    url:"sys/logon/logon?" + $("#ff").serialize(),      
			    success:function(data){  
			        if(data == "err"){
			        	alert("登录失败");
			        	window.location.href= "<%=basePath %>sys/index/toIndexPage";
		        	$(".password").textbox("clear"); 
			        } else{
			        	alert("登录成功");
			        	window.location.href= "<%=basePath %>sys/hello";
			        }
			    }    
			});    
			$('#ff').submit();  
		}
		
		function clearForm() {
			$('#ff').form('clear');
		}
		
	</script>
</body>
</html>
hello.jsp  登录成功后的界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>temp</title>
<!-- 引入EasyUi的头文件 -->
<link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">

<script type="text/javascript" src="easyui/jquery.min.js"></script>
<script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>

</head>
<body class="easyui-layout">
	<div data-options="region:'north',title:'North Title',split:true"
		style="height: 100px;"></div>
	<div data-options="region:'south'"
		style="height: 35px; text-align: center; line-height: 35px">
		版权所有&copy;heyongjie</div>
	<!--     <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>  -->
	<div data-options="region:'west',title:'菜单',split:true"
		style="width: 130px;"></div>
	<div data-options="region:'center',title:'center title'"
		style="padding: 5px; background: #eee;"></div>
</body>
</html>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值