springmvc后台往页面传值

先说说页面往后台传值的方法,欢迎补充:
一、form表单提交(常用)
二、JQuery中的ajax提交(常用)
三、通过url字符串拼接向后台提交数据

再来说说后台获取值的常用方法:

任意一种方法
<form action="login">  
    帐号:<input type="text" name="loginName" > <br/>  
    密码:<input type="text" name="password" > <br/>  
    <input type="submit" value="登录">  
</form> 

方法1:参数直接获取

ps: 函数参数名与请求参数名保持一致。

@RequestMapping("/login")  
public String login(String loginName,String password){  
    System.out.println("方法1:参数直接获取");  
    System.out.println("loginName:"+loginName);  
    System.out.println("password:"+password);         
    return "loginSuccess";  
}  

方法2:对象获取

ps:建立一个对象,属性名对应请求参数名保持一致,并生成相应的getter()和setter()方法。

建立对象User:

package com.test.pojo;  
  
public class User {  
    private String loginName;         
    private String password;   
  
    public String getLoginName() {  
        return loginName;  
    }  
  
    public void setLoginName(String loginName) {  
        this.loginName = loginName;  
    }  
      
    public String getPassword() {  
        return password;  
    }  
  
    public void setPassword(String password) {  
        this.password = password;  
    }  
}  

开始接收:

@RequestMapping("/login")  
public String login(User u){  
    System.out.println("方法2:对象获取");  
    System.out.println("loginName:"+u.getLoginName());  
    System.out.println("password:"+u.getPassword());          
    return "loginSuccess";  
}  

方法3:@RequestParam参数绑定获取

ps:方法1的变种,但该接收参数名可以随意,通过注解@RequestParam指明即可。

请求URL为:

http://localhost:8080/springmvc/hello/100?loginName=wangwu&password=123456

对于上面这个url,controller里面可以这么写:

@RequestMapping("/login")  
public String login(@RequestParam("loginName") String name,@RequestParam("password") String pwd){  
    System.out.println("方法3:参数绑定获取");  
    System.out.println("loginName:"+name);  
    System.out.println("password:"+pwd);          
    return "loginSuccess";  
} 

方法4:@PathVariable获取请求路径中的参数

这个注解能够识别URL里面的槽位,如下面的{id},我们看下面的一个URL

http://localhost:8080/springmvc/hello/101?param1=10&param2=20
对于上面的一个url可以这样写:

@RequestMapping("/hello/{id}")
    public String getDetails(@PathVariable(value="id") String id,
    @RequestParam(value="param1", required=true) String age,
    @RequestParam(value="param2", required=false) String count){
.......
}

向前台传值(除了使用ModelAndView方式外,可以在声明方法的时候声明也可以在代码中声明。还可以使用Map、Model和ModelMap的方式,必须在方法中声明),如下ModelAndView可行,Map不行:
    public String showdXxnr(String tsxxmx) {
//         ModelAndView model=new ModelAndView();
//         model.addObject("name", "李四");
//         model.setViewName("/xxts/xxnr");
         Map<String, Object> map=new HashMap<String, Object>();
······
}

使用Map、Model和ModelMap的方式

@RequestMapping("/test")
public String test(Map<String,Object> map,Model model,ModelMap modelMap,HttpServletRequest request){
    //1.放在map里  
    map.put("names", Arrays.asList("cai","zhi","ci"));
    //2.放在model里 建议使用
    model.addAttribute("time", new Date());
    //3.放在request里  
    request.setAttribute("request", "requestValue");
    //4.放在modelMap中 
    modelMap.addAttribute("city", "ChengDu");
    modelMap.put("gender", "male");
    return "hello";
}
JSP写法:
使用EL表达式
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

time:${requestScope.time}
names:${requestScope.names }
city:${requestScope.city }
gender:${requestScope.gender }
request:${requestScope.request}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天想要讲的东西比较杂乱,自己理了好久的思路感觉一直找不到一条线串联起这些碎片化的知识。然后就想着那就先写写看吧,...
    Programmer客栈阅读 6,225评论 0 9
  • 一、前言 对于后端开发来说,经常要和前端进行联系的两个面就是:1、表单form提交至servlet。2、ajax提...
    7叶阅读 7,739评论 1 5
  • 面试题一:https://github.com/jimuyouyou/node-interview-questio...
    R_X阅读 5,569评论 0 5
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,378评论 0 7
  • 一:认识jquery jquery是javascript的类库,具有轻量级,完善的文档,丰富的插件支持,完善的Aj...
    xuguibin阅读 5,627评论 1 7