SpringMVC无法引入Jquery的问题

Uncaught ReferenceError: $ is not defined
    at hellow.js:1

页面提示jquery没有定义,其实就是jquery没有正确引入,网上看了一些资料,有说web.xml配置拦截静态请求的,有说spring-xml配置的,但都没有找到我的错误。

在这里说一下中级解决方案:

检查以下文件,1.web.xml是否把所有静态资源都拦截了,

                         2.spring-xml文件配置是否正确;

                        3.jsp页面引入的jquery路径是否正确;

其实我的问题是犯了个低级错误,jquery的引入顺序应该在对应js之上;

下面给出正确的三个地方正确代码:

 1.web.xml设置为只拦截.do的形式

<?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_2_5.xsd" version="2.5">
  <display-name>ttmTestJiang</display-name>
 <servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring-*.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
    
	<!-- 欢迎页面
	<welcome-file-list>
	    <welcome-file>default.html</welcome-file>
	</welcome-file-list> -->
</web-app>

2.spring-mvc-xml文件:

 <context:component-scan base-package="cn.jiang.test" />
     <!--  <mvc:default-servlet-handler />  
      <mvc:resources mapping="/res/**" location="/WEB-INF/res/" /> -->
    <!-- spring mvc 注解及类型转换 -->
    <mvc:annotation-driven conversion-service="conversionService" />
                   <!-- 通过ConversionService进行类型转换 -->
    <!--  要使用spring mvc中的@Controller注解,就必须要配置<mvc:annotation-driven />,
          否则org.springframework.web.servlet.DispatcherServlet无法找到控制器并把请求分发到控制器。
    -->
    <bean id="conversionService"
        class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    </bean>

如果是配置了shiro安全框架:则:spring-shiro-xml文件应对静态资源放行:

 <!-- shiro工厂bean配置 -->
     <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
         <!-- shiro的核心安全接口 -->
         <property name="securityManager" ref="securityManager"/>
         <!-- 要求登录时的连接 -->
         <property name="loginUrl" value="/loginUI.do"></property>
         <!-- 登录成功后要跳转的连接(此处已经在登录中处理了) -->
         <!-- <property name="successUrl" value="/index.jsp"></property> -->
         <!-- 访问未对其授权的资源时,要跳转的连接 
         <property name="unauthorizedUrl" value="/default.html"></property>-->
         <!-- shiro连接约束配置 -->
         <property name="filterChainDefinitions">
             <value>
                 <!-- 对静态资源设置允许匿名访问 -->
                 /images/** = anon
                 /js/** = anon
                 /css/** = anon
                 /static/** = anon
                 /bootstrap/** = anon
                 /jquery/** = anon
                 <!-- 可匿名访问路径,例如:验证码、登录连接、退出连接等 -->
                 /login.do = anon
                 <!-- 退出 -->
                 /logout.do = logout  <!-- 会调用Subject的logout方法,此方法会将session清空 -->
                 <!-- 剩余其他路径,必须认证通过才可以访问 -->
                 /** = authc
             </value>
         </property>
     </bean>
     <!-- 配置shiro安全管理器 -->
     <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
         <property name="realm" ref="shiroUserRealm"></property>
     </bean>
     <!-- 自定义Realm -->
    <bean id="shiroUserRealm" class="cn.tedu.ttms.common.service.impl.ShiroUserRealm">
    	<!-- 配置凭证算法匹配器 -->
    	<property name="credentialsMatcher">
    		<bean class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
    			<property name="hashAlgorithmName" value="MD5"/>
    			<!-- <property name="hashIterations" value="1024"/> -->
    		</bean>
    	</property>
    </bean>
	<!--Shiro生命周期处理器-->
	<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
	
</beans>

3.jsp路径引入:注意,jquery顺序:

<%@ page  contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set var="basePath" value="${pageContext.request.contextPath}"></c:set>
<script type="text/javascript" src="${basePath}/jquery/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="${basePath}/testJs/hellow.js"></script>

猜你喜欢

转载自blog.csdn.net/weixin_41524017/article/details/82261560