spring mvc ajax异步请求找不到路径

笨笨benzema 2016-05-16 02:09:25
用spring mvc搭建了一个项目,在加载首页时需要用ajax异步向后台调用数据,但是一直会报404错误,


ajax代码如下:

$.ajax({
type:"GET",
url:"/taxi/taxiid",
dataType:"json",
contentType:"application/json",
// data:{
// "Taxi_Id":null
// },
success:function(data){
console.log(data);
}
});


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>geotagged</display-name>
<welcome-file-list>
<welcome-file>/show/index.html</welcome-file>
</welcome-file-list>


<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:hibernate.cfg.xml</param-value>
</context-param>

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

<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Spring中提供了 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter;
这个类来实现OpenSessionInViewer的操作 -->
<filter>
<filter-name>openSessionInViewerFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInViewerFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>


...全文
594 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
-AJ- 2016-05-18
  • 打赏
  • 举报
回复
引用 9 楼 fangbaby93 的回复:
感谢各位,原因是eclipse中没有勾项目自动部署,更新的代码没有同步到tomcat中,把tomcat clean掉重新部署就能正常映射了
试试sts
mrtian367 2016-05-18
  • 打赏
  • 举报
回复
[b][size=12px]如果是在jsp中url:"<%=basePath%>taxi/taxiid", ,如果不是那么就要写路径全名url="http://服务器Ip地址:端口号/项目名/taxi/taxiid"[/b][/size]
Intboy 2016-05-17
  • 打赏
  • 举报
回复
这部分加到jsp上面
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":"
            + request.getServerPort() + path + "/";
%>
然后<%=basePath%>taxi/taxiid
ouzhijian 2016-05-17
  • 打赏
  • 举报
回复
引用 3 楼 ouzhijian 的回复:
url:"<%=request.getContextPath()%>/taxi/taxiid",
你的js是写在单 独的js文件的吧,如果是这样,那你调方法的时候把<%=request.getContextPath()%>当参数传过去这拼接就可以 了
笨笨benzema 2016-05-17
  • 打赏
  • 举报
回复
感谢各位,原因是eclipse中没有勾项目自动部署,更新的代码没有同步到tomcat中,把tomcat clean掉重新部署就能正常映射了
oxcow 2016-05-16
  • 打赏
  • 举报
回复
引用 5 楼 fangbaby93 的回复:
现在的问题是,写一个/taxi/test这样的测试路径映射不到controller中
启动日志里都没有打印出映射的url路径么? 开debug看下输出日志
笨笨benzema 2016-05-16
  • 打赏
  • 举报
回复
现在的问题是,写一个/taxi/test这样的测试路径映射不到controller中
笨笨benzema 2016-05-16
  • 打赏
  • 举报
回复
引用 3 楼 ouzhijian 的回复:
url:"<%=request.getContextPath()%>/taxi/taxiid",
谢谢解答,但是这样会报 400 (Bad Request)错误
ouzhijian 2016-05-16
  • 打赏
  • 举报
回复
url:"<%=request.getContextPath()%>/taxi/taxiid",
笨笨benzema 2016-05-16
  • 打赏
  • 举报
回复
controller:

package com.cn.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.cn.entity.Taxi;
import com.cn.service.TaxiService;

@Controller
@RequestMapping("/taxi")
public class TaxiController {

	private TaxiService taxiService;

	public TaxiService getTaxiService() {
		return taxiService;
	}

	@Resource
	public void setTaxiService(TaxiService taxiService) {
		this.taxiService = taxiService;
	}
	
	@RequestMapping(value = "/taxiid")
	public @ResponseBody List<String> getTaxiId() {
		System.out.println("enter id");
		return taxiService.getAllTaxiId();
	}
}

spring-servlet.xml:

<?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:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
	default-lazy-init="true">

	<!--启动Spring MVC的注解功能,完成请求和注解POJO的映射 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/> -->
	<mvc:annotation-driven />
	
	<!--使Spring支持自动检测组件,如注解的Controller -->
	<context:component-scan base-package="com.cn.controller"></context:component-scan>
	
	<mvc:default-servlet-handler/> 

	 <bean id="handlerMapping"  
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">  
        <property name="order" value="0" />  
    </bean>

	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
	</bean>
	
	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters">
			<list>
				<bean
					class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
			</list>
		</property>
	</bean>
	
	<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
		
	   

</beans>
Tanny羽 2016-05-16
  • 打赏
  • 举报
回复
路径写绝对路径

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧