spring mvc 如何处理jquery ajax请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc 如何处理jquery ajax请求相关的知识,希望对你有一定的参考价值。

后台是用spring mvc的controller
页面jsp 使用jquery的ajax 做 用户名 存在验证,
controller中,如何写这个处理函数,网上例子大部分都不能用。给个简单的例子吧
网上的例子有,个注解 @ResponseBody 我根本没有这个,是不是我少jar包啊,
我只有spring.jar 和 spring-webmvc.jar这两个

@RequestMapping("/dataList") 
public void  datalist(CsoftCunstomerPage page,HttpServletResponse response) throws Exception
List<CsoftCunstomer> dataList = csoftCunstomerService.queryByList(page);
//设置页面数据
Map<String,Object> jsonMap = new HashMap<String,Object>();
jsonMap.put("total",page.getPager().getRowCount());
jsonMap.put("rows", dataList);

try 
//设置页面不缓存
response.setContentType("application/json");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setCharacterEncoding("UTF-8");
PrintWriter out= null;
out = response.getWriter();
out.print(JSONUtil.toJSONString(jsonMap));
out.flush();
out.close();
 catch (IOException e) 
e.printStackTrace();


参考技术A spring 2.5?, 2.5没有@ResponseBody
@RequestMapping(value = "checkLoginName")
@ResponseBody
public String checkLoginName(@RequestParam("loginName") String loginName)
if (accountService.findUserByLoginName(loginName) == null)
return "true";
else
return "false";

本回答被提问者和网友采纳

Spring MVC系列Spring MVC中请求转发中出现异常如何处理

底层配置可以参考上篇Spring MVC系列(一)、Spring MVC概述及ModelAndView(模型视图)

三、Spring MVC中请求转发中出现异常如何处理

在程序运行后报错了,首先我们要知道是何种错误,然后再去针对性的解决,这样才能不至于瞎胡改。

3.1 先在springmvc的核心配置文件中进行异常解析配置

  • applicationContext-springmvc.xml
    <!--简单映射异常解析器-->
        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <!-- 给异常命名一个别名 -->
            <property name="exceptionAttribute" value="ex"/>
            <!--异常映射-->
            <property name="exceptionMappings">
                <!--标注是啥异常错误(可以添加多个)-->
                <props>
                    <!--所有异常均可跳转到一个页面中-->
                    <!--异常默认跳转页面-->
                    <prop key="java.lang.RuntimeException">error</prop>
                    <!--数组下标越界异常-->
                    <prop key="java.lang.ArrayIndexOutOfBoundsException">error</prop>
            	</props>
            </property>
        </bean>		
    
    在这里插入图片描述

3.2 在控制器Controller中访问登录界面

  • SystemUserContoller类
    /**
         * 跳转登录界面
         * @return
         */
        @RequestMapping(method = RequestMethod.GET,value = {"/toLogin"})
        public String toLogin(HttpServletRequest request){
            System.out.println(1/0);//制造运行时异常
            return "login";
        }
    
    在这里插入图片描述

3.3 error.jsp页面获取异常信息

  • error.jp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>配置文件中检测到的error</h1>
    ${ex}<br/>
    
    </body>
    </html>
    

3.4 在地址栏请求toLogin

在这里插入图片描述
在这里插入图片描述

3.5 使用注解(@ExceptionHandler)标注在方法上的方式获取异常信息,并跳转至error.jsp页面

  • Controller
    @ExceptionHandler(value = RuntimeException.class)
        public String exception(RuntimeException re,HttpServletRequest req){
            req.setAttribute("MSG",re.getMessage());
            return "error";
        }
    

在这里插入图片描述

  • error.jspyemian
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h1>配置文件中检测到的error</h1>
    ${requestScope.ex}<br/>
    
    <h1>注解中检测到的error</h1>
    ${requestScope.MSG}<br/>
    
    </body>
    </html>
    
    在这里插入图片描述

以上是关于spring mvc 如何处理jquery ajax请求的主要内容,如果未能解决你的问题,请参考以下文章

jquery如何处理的问题

如何处理 JavaScript 或 jQuery 中的 CORS 错误?

离开页面时如何处理jQuery ajax发布错误

离开页面时如何处理jQuery ajax发布错误

jQuery工具提示自定义不起作用,如何处理?

如何处理 Spring 集成流的事务(Java DSL)