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
){  
     ......
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM