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";
        }
    }

  • 相关阅读:
    mysqlp批量替换的sql语句
    Paypal 支付功能的 C# .NET / JS 实现
    Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数
    WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决
    entity framework codefirst 用户代码未处理DataException,InnerException基础提供程序在open上失败,数据库生成失败
    《设计模式》一书中的23种设计模式
    C++程序实例唯一方案,窗口只打开一次,程序只打开一次
    重构——与设计模式的恋情
    重构——一个小例子
    C#通过调用WinApi打印PDF文档类,服务器PDF打印、IIS PDF打印
  • 原文地址:https://www.cnblogs.com/Createsequence/p/11228889.html
Copyright © 2011-2022 走看看