【转载】spring mvc 后端获得前端传递过来的参数的方法

1.通过HttpServletRequest 获得

HttpServletRequest.getParameter(参数名),可以获得form表单中传递的参数,或ajax或url中传递过来的参数,
如果通过form表单传递,需要form表单中的input框的 name属性的值和传递给getParameter的参数名保持一致,大小写也要一致
@Controller
@RequestMapping("/")
public class UserController {
     private UserService us;
   @ResponseBody
    @RequestMapping("loginForm")
    public void login(HttpServletRequest req, HttpServletResponse rsp) throws IOException{
        String userName=req.getParameter("username").trim();//trim() 删除字符串前后的空格
        String passWord=req.getParameter("password").trim();
        String userInfo = us.check(userName, passWord);
        String[] result = new String[1];
        //从返回值中取出用户名存到result中
        if (userInfo != "false") {
            result[0]= "true";
        }else {
            result[0]= "false";
        }
        User user = new User();
        user.setUserName(userName);
        req.getSession().setAttribute("user",user);
        //增加回显用户名
        req.getSession().setAttribute("sessionAdminUserName",userName);
        rsp.setContentType("application/json");
        rsp.setCharacterEncoding("utf-8");
        // 首先把字符串转成 JSONArray对象
        JSONArray jsonArray = JSONArray.fromObject(result);
        JSONObject jsobjcet = new JSONObject();
        jsobjcet.put("data", jsonArray); 
        try {
            rsp.getWriter().write(jsobjcet.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
}

}

2.通过实体传递

  controller中接收的参数直接是实体,controller将实体名传给server层,server层将实体传递给接口实现层(serverimpl),结构实现层通过get方法获取到参数的值,传递给数据层(mapper)
前提条件是form表单中的input框的name属性的值一定要与实体保持一致,包括大小写
    /**
     * 新增用户
     * */
    @RequestMapping(value = "addUser")
    @ResponseBody
    public int newaddusr(User user){
        Date d = new Date();
        SimpleDateFormat Time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String regDate=Time.format(d);
        user.setRegDate(regDate);
        String authorization=user.getAuthorization();
        if(authorization=="") {
            authorization="1";
            user.setAuthorization(authorization);
        }
        int status = us.addUser(user);
        return status;
    }

3.通过参数名直接传递

前提条件是form表单中的input框的name属性的值一定要与实体保持一致,包括大小写
    @RequestMapping("apicharts")
    @ResponseBody
    public List<Map<String, Object>> apicharts(String projectName,String environment,HttpServletResponse rsp,Map<String, Object> map) {
        //查询项目名称列表
        ats.projectName(map);
        //查询环境名称列表
        ats.environmentName(map);
      List<Map<String, Object>> versionInfo=ats.versionCount(projectName,environment,map);
      return versionInfo;
    }  

4. 通过@RequestParam注解获得:

  参数1要与form表单中的input框的name属性的值一致,包括大小写,参数2可以理解为参数1 的别名

@RequestMapping(value="/logout")
public String logout(@RequestParam(value="参数1",required=false)String 参数2
){  
     ......
}
原文地址:https://www.cnblogs.com/alasijia/p/9334655.html
原文地址:https://www.cnblogs.com/steveshao/p/11776807.html