zoukankan      html  css  js  c++  java
  • 在SpringMVC中,jsp和后台互相传值

    如题,这个是以前做的笔记,现在搬到博客上......

    package com.ruide.action;
    ​
    import java.util.HashMap;
    import java.util.Map;
    ​
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    ​
    import org.springframework.http.HttpRequest;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    ​
    import com.ruide.po.User;
    ​
    //让spring管理类
    @Controller
    public class TestAction {
        //设置请求路径
        @RequestMapping(value="/hello.do")
        public String say(){
            System.out.println("Hello World");
            
            //return "index";//默认请求转发
            
            return "redirect:/index.jsp";
        }
        
        /*
         * ----------------------如何从页面里获取值----------------------
         * 
         * */
        
        //方法1:使用request接受参数
        @RequestMapping("/login.do")
        public String login(HttpServletRequest request){
            String username=request.getParameter("username");
            String userpass=request.getParameter("userpass");
            System.out.println(username+userpass);
            
            return null;
        }
        
        //方法2:直接通过注解在参数中获取值
        @RequestMapping("/login.do")
        public String login(@RequestParam("username") String username,
                            @RequestParam("userpass") String userpass){
            
            System.out.println(username+" "+userpass);
            
            return null;
        }
        
        //方法3:通过对象来接受值(该方法需要控件name与对象属性一致)
        @RequestMapping("/login.do")
        public String login(User user){
            
            System.out.println(user.getUsername()+" "+user.getUserpass());
            
            return null;
        }
        
        //方法4:通过与控件name同名的变量接受值
        @RequestMapping("/login.do")
        public String login(String username,String userpass){
            
            System.out.println(userpass+" "+username);
            
            return "index";
        }
        
        
        
        /*
         * ----------------------如何把值传递到页面----------------------
         * 
         * */
        
        //方法1:通过request把值传递到页面
        @RequestMapping("/login.do")
        public String login(User user,HttpServletRequest request){
            
            request.setAttribute("username",user.getUsername());
            request.setAttribute("userpass", user.getUserpass());
            
            return "index";
        }
        
        //方法2:通过框架自带的modelmap集合传递到页面
        @RequestMapping("/login.do")
        public String login(User user,ModelMap mm){
            
            mm.put("username", user.getUsername());
            mm.put("userpass", user.getUserpass());
            
            return "index";
        }
        
        //方法3:通过框架自带的model and view传递值(常用)
        @RequestMapping("/login.do")
        public ModelAndView login(User user){
            //把值放入一个键值对中
    //      Map<String,String> model=new HashMap<String,String>();
    //      model.put("username", user.getUsername());
    //      ModelAndView mv=new ModelAndView("index",model);
            //把对象直接放入键值对中
            ModelAndView mv=new ModelAndView();
            mv.addObject("user",user);
            //设置要转发的页面
            mv.setViewName("index");
            return mv;
        }
        
        //方法4:通过注解传递值(注解中的名字会被赋值)
        //注意:注解过的方法会在整个action接受到请求时最先执行(不推荐使用)
        @ModelAttribute("name")
        public String getName(){
            return "haha";
        }
    }

  • 相关阅读:
    hdu2037 今年暑假不AC[贪心][区间调度问题]
    Features Track[STL map]
    Characters with Hash[签到题]
    hdu2094产生冠军[STL set]
    2018ECNA Difference[时空复杂度]
    hdu1276士兵队列训练问题[简单STL list]
    20190815网络与信息安全领域专项赛线上赛misc WriteUp
    hdu1873 看病要排队[优先队列]
    Pygame 贪吃蛇
    Windows安装Python3 curses模块
  • 原文地址:https://www.cnblogs.com/Createsequence/p/11228889.html
Copyright © 2011-2022 走看看