SSM-ajax&json&controller整合

SSM-ajax&json&controller整合

一、页面跳转

1、直接跳转

(1)视图解析器(springMVC.xml中)
<!--视图解析器-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
(2)js代码
document.getElementById("ajax2").onclick = function () {
            location.href="${pageContext.request.contextPath}/demo/ajax3"
        };
(3)controller
  • String
 @RequestMapping("/ajax3")
    public String testDemo3(){
        return "success";
    }
  • ModelAndView
@RequestMapping("/ajax4")
    public ModelAndView testDemo4(){
        ModelAndView modelAndView=new ModelAndView();

        //基本数据类型
        modelAndView.addObject("key1","value1");
        //list
        List list=new ArrayList();
        list.add("1");
        list.add("2");
        modelAndView.addObject("list1",list);
        //map
        Map map= new HashMap();
        map.put("one",1);
        map.put("two",2);
        modelAndView.addObject("map1",map);
        //对象
        Temp temp=new Temp();
        temp.setA("A");
        temp.setB("B");
        modelAndView.addObject("obj",temp);
        modelAndView.setViewName("forward:/WEB-INF/views/success.jsp");
        return modelAndView;
    }

ps:modelAndView存入的对象前端获取方法--------直接${key}

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>success</title>
</head>
<body>
<h>sucess</h>
<script>
    alert(${key1});
</script>
${key1};
${list1};
${obj.a}
<c:forEach items="${list1}" var="list" varStatus="l">
    //索引
    ${l.index}
    //循环次数,从1开始
    ${l.count}
    //集合的每一项
    ${list}
</c:forEach>
</body>
</html>

2、ajax跳转(ajax局部刷新,不能通过controller进行跳转,只能在success的函数中跳转)

(1)ajax写法
document.getElementById("ajax1").onclick = function () {
            $.ajax({
                type: "get",
                url: "${pageContext.request.contextPath}/demo/ajax1",
                data: {"data1": "data1", "data2": "data2"},
                success: function (data) {
                    //ajax是局部刷新,不能在controller里面实现页面跳转!!!!!
                    window.location.href="./success.jsp";
                }
            });
        };
(2)controller写法
@RequestMapping("/ajax1")
    public void testDemo(String data1,String data2,HttpServletResponse response,HttpServletRequest request){
        System.out.println("data1 = " + data1);
        System.out.println("data2 = " + data2);
    }

ps:返回值是void时,参数列表中必须有HttpServletRequest和HttpServletResponse,否则会报404错误。

二、controller向ajax传值

1、ajax返回值String

controller返回值为String
  • ajax
$.ajax({
                type: "get",
                url: "${pageContext.request.contextPath}/demo/ajax5",
                data: {"data1": "data1", "data2": "data2"},
                success: function (data) {
                    var data = data;
                    alert(data);
                }
            });

  • controller
@RequestMapping("/ajax5")
    @ResponseBody
    public String testDemo5(){
        return "string-return";
    }

2、ajax返回值List

  • ajax
document.getElementById("ajax4").onclick = function () {
            $.ajax({
                type: "get",
                url: "${pageContext.request.contextPath}/demo/ajax6",
                data: {"data1": "data1", "data2": "data2"},
                success: function (data) {
                    var data = data;
                    for (var i=0;i<=5;i++){
                        alert(data[i]);
      
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值