spring mvc映射为html后,返回json的奇怪问题

踏雪听雨 2015-10-22 06:36:44
映射为do后缀,返回json到前台,正常。

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


映射为html后缀,返回json到前台,报500错误(程序什么都没有改,就改了RequestMapping的映射名

<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>



方法如下,只改其中的login.do为login.html,什么配置都没有改,ajax调用这个url就不正确了,报http500 error:

@RequestMapping(value = "login.do", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> login(HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("msg", user);

return map;
}
...全文
236 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
踏雪听雨 2015-10-28
可有解吗?请高人指点
回复
踏雪听雨 2015-10-28
引用 8 楼 JAVA_LiuTe 的回复:
就添加了一个后缀路径映射,就报错了 ?还添加了一个后缀路径映射,但是没有在controller中添加login.html映射路径,在路劲里输入longin.html报错 ?
就是映射为html后出现的,login.html,不返回json可以访问,但返回json数据,就有问题了
回复
引用 8 楼 JAVA_LiuTe 的回复:
就添加了一个后缀路径映射,就报错了 ?还添加了一个后缀路径映射,但是没有在controller中添加login.html映射路径,在路劲里输入longin.html报错 ?
若是第二种情况,在controller中添加一个login.html的地址映射。
回复
就添加了一个后缀路径映射,就报错了 ?还添加了一个后缀路径映射,但是没有在controller中添加login.html映射路径,在路劲里输入longin.html报错 ?
回复
踏雪听雨 2015-10-23
引用 4 楼 like987654 的回复:
[quote=引用 3 楼 SaRoot 的回复:] 通过映射后,能通过.html访问页面,但就是返回json格式时,会报错。
你返回到前台的json格式是String类型还是对象类型的,如果是对象你可以转成String类型试试。[/quote]

@RequestMapping(value = "login.do", method = RequestMethod.POST)
    public @ResponseBody Map<String, Object> login(HttpServletRequest request, HttpServletResponse response) {
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("msg", user);
 
        return map;
    }
回复
踏雪听雨 2015-10-23
比如: test.html返回json报错 test.do返回json正常
回复
like987654 2015-10-23
引用 3 楼 SaRoot 的回复:
通过映射后,能通过.html访问页面,但就是返回json格式时,会报错。
你返回到前台的json格式是String类型还是对象类型的,如果是对象你可以转成String类型试试。
回复
踏雪听雨 2015-10-23
通过映射后,能通过.html访问页面,但就是返回json格式时,会报错。
回复
踏雪听雨 2015-10-23
引用 1 楼 like987654 的回复:
修改完RequestMapping的映射名后 web.xml 里面的<servlet-mapping>修改没有呢,哪儿也需要修改。
有的,如下:

<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>*.html</url-pattern>
	</servlet-mapping>

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">  
	    <property name="viewClass" value="panzi.phobos.core.util.MyFreeMarkerView"/>  
	    <property name="contentType" value="text/html; charset=utf-8"/>
	    <property name="prefix" value=""/>
	    <property name="suffix" value=".ftl" />
	    <!-- 如果有多种解析器,添加下面这行,让freemarker解析器优先 -->  
	    <property name="order" value="0" />  
	</bean>
	
回复
like987654 2015-10-22
修改完RequestMapping的映射名后 web.xml 里面的<servlet-mapping>修改没有呢,哪儿也需要修改。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

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