关于 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>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring MVC中,可以通过ModelAndView对象来实现页面跳转和传递数据。使用ModelAndView对象可以将需要传输的数据存放在Model中,并指定需要跳转的视图名称。然后在控制器中返回这个ModelAndView对象。在视图中可以通过${model中的属性名}的方式来获取传输的数据。 以下是一个示例代码: ```java @Controller @RequestMapping("/data") public class DataController { @RequestMapping("/test") public ModelAndView test() { ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("city", "北京"); modelAndView.addObject("hobby", "football"); modelAndView.setViewName("index"); return modelAndView; } } ``` 在上述示例中,我们在test方法中创建了一个ModelAndView对象,并通过addObject方法将city和hobby存放在Model中,然后通过setViewName方法指定了跳转的视图名称为"index"。 在视图"index.jsp"中,可以通过`${city}`和`${hobby}`的方式来获取传输的数据。 ```jsp <body> city: ${city}<br/> hobby: ${hobby} </body> ``` 这样,当我们访问路径"/data/test"时,就会跳转到"index.jsp"页面,并且页面上能够显示传输的数据city和hobby。 注意:在配置文件中需要配置ViewResolver来解析视图名称和实际的视图页面。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [springMVC跳转和传值](https://blog.csdn.net/m0_47010003/article/details/124558980)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值