关于 springMVC controller 页面 跳转 和 数据交换

  1. 单纯的进行页面跳转(没有数据交换)
    @Controller 
    public class IndexController {
    	//index.html
    	@RequestMapping("index")
    	public String index(){
    		    return "index";
    	}
    }
  2. 存在数据交换的页面跳转
    @Controller
    @RequestMapping("/user")
    public class UserController {
    	//user.html?login
    	@RequestMapping(params = "login")
    	public ModelAndView login(String username,String password){
    		if(this.checkParams(new String[]{username,password})){
    		    //验证用户成功,跳转到登录成功页面,并将 用户名、密码 传到前台
    			ModelAndView mav = new ModelAndView("succ");		
    			mav.addObject("username",username);
    			mav.addObject("password", password);
    			return mav;
    		}
    		//验证失败,返回首页
    		return new ModelAndView("index");
    	}
    }
  3. ajax 异步请求进行数据交换
    java代码:
    @Controller
    @RequestMapping(value = "/IndexController")
    public class IndexController {
    
      @Autowired
      IndexServiceImpl indexServiceImpl;
      /**
       * ajax 异步获取首页 动态 图片    返回 JSON 字符串
       * 
       * @return
       */
    //IndexController/getIndexImages.html
     @RequestMapping(value = "/getIndexImages", method = RequestMethod.POST,
          consumes = "application/json")
      @ResponseBody
      public String getIndexImages() {
        System.out.println("正在调用controller....");
        JSONObject jsonObject = new JSONObject();
        List<Photo> smallImages = new ArrayList<Photo>();
        smallImages = indexServiceImpl.showSmallImages();
        List<Photo> bigImages = new ArrayList<Photo>();
        bigImages = indexServiceImpl.showBigImages();
        jsonObject.put("smallImages", smallImages);
        jsonObject.put("bigImages", bigImages);
        return jsonObject.toJSONString();
      }
    }
    ajax 代码:
    <script type="text/javascript">
    function myIndex() {
    			$.ajax({
    				url : "IndexController/getIndexImages.html",
    				type : "POST",
    				async : true,//表示进行异步获取
    				dataType : 'json',
    				contentType : 'application/json;charset=UTF-8', //contentType很重要   
    				success : function(result) {
    					var obj = $.parseJSON(result);
    					var smallImages = obj.smallImages;
    					var bigImages = obj.bigImages;
    					//用于小图片
    					for (attr in smallImages) {
    						var imgSrc = "page/images/" + smallImages[attr].pic;
    						document.getElementById("myBigImage" + attr).style.background = "url("
    								+ imgSrc + ")";
    					}
    					//用于大图片  仿照小图片实现
    					for (attr in bigImages) {
    						var imgSrc = "page/images/" + bigImages[attr].pic;
    						document.getElementById("myBigImage" + attr).style.background = "url("
    								+ imgSrc + ")";
    					}
    
    				}
    			});
    }
    window.onload = myIndex;//不要括号
    </script>
  4. web.xml 部分 配置代码 如下 :
      <servlet>
        <servlet-name>MVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>
    	classpath:spring-mvc.xml
          </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>MVC</servlet-name>
        <!-- 配置 需要 拦截 的 对象 -->
        <url-pattern>*.html</url-pattern>
      </servlet-mapping>


猜你喜欢

转载自blog.csdn.net/ZkD953/article/details/80165100
今日推荐