日期:2014-05-17  浏览次数:20677 次

springmvc 怎样返回json异常
1.第一种情况
html文件
<form id="myForm" name="myForm" method="post" enctype="multipart/form-data" action="save.do">

java文件
@RequestMapping(value = "/save", method = { RequestMethod.POST })
public Map<String, ? extends Object> saveUserInfo(HttpServletRequest request, HttpServletResponse response) throws Exception {
if(true)
  throw new Exception ("抛出Exception !");
}

这样的话通过jquery.form.js提交后,会取到异常内容“抛出Exception !”;

2.第二种情况
html文件
<form id="myForm" name="myForm" method="post" action="save.do">

java文件
@RequestMapping(value = "/save", method = { RequestMethod.POST })
public Map<String, ? extends Object> saveUserInfo(HttpServletRequest request, HttpServletResponse response) throws Exception {
if(true)
  throw new Exception ("抛出Exception !");
}

这样的话通过jquery.form.js提交后,去到的是错误处理文件(errorshow)的html代码。


spring配置文件:
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView">
<value>errorshow</value>
</property>
<property name="exceptionMappings">
<props>
<prop key="java.lang.Exception">errorshow</prop>
</props>
</property>
</bean>
怎样配置能不加 enctype="multipart/form-data" 达到第一种情况的效果?

------解决方案--------------------
帮顶。。。。
------解决方案--------------------
enctype="multipart/form-data" 加这句话和不加没多大的问题。 唯一的就是加了这句传参是以2进制传过去。在后台如果用request取值就会报错。 不加的话就和普通的一样。
------解决方案--------------------
不太懂,如果想取到异常信息的话,你把异常信息作为数据传到前台就行了!
------解决方案--------------------
1. 不要把一场往上抛了,直接在Action中捕捉一场,然后将一场信息返回给Ajax,页面获取内容就可以了,

2. form表单默认的enctype就是:multipart/form-data,不知道你想实现一个什么样的功能。
------解决方案--------------------
就是我说的,在Action中捕获异常,如:
Java code

try{
   ......
}catch(Exception e){
  out.print("系统出现异常。。。。。")
}

------解决方案--------------------
把可能出现异常的部分try catch

在e.print.. 这的信息用jsonobject封装,完了返回json串