Spring传值的几种方法

method 1 >通过form表单传值:

Step1     :创建form表单(index.jsp)

    <form action="user/test" method="POST">

          姓名: <input type="text" name="name" /><br />

          性别: <input type="text" name="sex" /><br />

          年龄:<input type="text" name="age" /><br />

           <input type="submit" value="提交" />   

    </form>

Step2   :创建POJO(bean)(POJO.java)

    *值得注意的是在这里定义的变量名应当与input中设置的name值相等

    String name,sex;

    int age;

    public String getName() {

            return name;

        }

        public void setName(String name) {

            this.name = name;

        }

        public String getSex() {

            return sex;

        }

        public void setSex(String sex) {

            this.sex = sex;

        }

        public int getAge() {

            return age;

        }

        public void setAge(int age) {

            this.age = age;

        }

Step3   :在Controller类中定义处理方法(Controllers.java)

    @Controller

    @RequestMapping("/user")

    public class Controllers(){

     @RequestMapping(value = "test" , method = RequestMethod.POST)

       public String test(ModelMap mo,POJO bean){

          String name =   bean.getName();//在这里bean将不需要去set值,它将自动获取值。只需要去使用它就可以了

          String sex = bean.getSex();

          int age = bean.getAge();

          mo.addAttribute("name",name);

          mo.addAttribute("sex",sex);

          mo.addAttribute("age",age);

    return "../Message";//返回到Message页面

    }

    }

Step4  :在Message页面获取值(Message.jsp)

    <h1>Message</h1>

    姓名:<a>${name}</a>

    性别:<a>${sex}</a>

    年龄:<a>${age}</a>

 

method 2>通过a标签传值:

2-1>带参数的超链接形式:

Step1  :定义好a标签以及URL和需要传的值(以键值对方式)

    <a href="user / alink1 ? name = ' World ' ">click me<a>//在程序的URL中是不存在空格的,目的是为了能够看得清楚。

Step2  :在Controller类中定义方法处理业务(Controllers.java)

    @Controller

    @RequestMapping("/user")

    public class Controllers(){

     @RequestMapping("/alink1")

       public String test(@RequestParam String name,ModelMap mo){//使用@RequestParam注解将传输的值赋予给name变量

          mo.addAttribute("name",name);

       return "../Name";//返回到Name页面

    }

    }

Step3 :在Name页面获取值(Name.jsp)

    <h1>${name}</h1>

2-2>REST风格方式

Step1:定义好a标签以及URL和需要传的值

    <a href="user / alink2 / 'World' "></a>

    //与第一种方式相比:以“/”替换了问号,不是以键值对形式。

Step2  :在Controller类中定义方法处理业务(Controllers.java)

             @Controller

             @RequestMapping("/user")

             public class Controllers(){

            @RequestMapping("/alink1/{name}")

             public String test(@PathVariable("name") String name,ModelMap mo){

                      mo.addAttribute("name",name);

                      return "../Name";//返回到Name页面

                  }

             }

Step3   :在Name.jsp页面获取值

            <h1>${name}</h1>

 

 method 3>通过AJAX传值

 Step1:编写AJAX(index.jsp)

      $.ajax({

         type:"post",

         url:"user/ajax",

         data:{

            speak:"Holler World!"

         },

          success:function(data){

                window.location.href="Success.jsp?data = '"+data+"'";//将controller类返回的值传输到Success.jsp页面

          }

});

 

Sep2  :在Controller类中定义方法处理业务(Controllers.java)

             @Controller

             @RequestMapping("/user")

             public class Controllers(){

            @RequestMapping(value = "/ajax" , method = RequestMethod.POST)

             public String ajax(HttpServletRequest req,HttpServletResponse res,ModelMap mod){

                     String speak = req.getParameter("speak");

                     try{

                               PrintWriter print = res.getWriter();

                               print.print(speak);

                               print.close();

                     }catch{}

                      return "../indx";//返回到index页面

                  }

             }

Step 3 : 返回到index页面后ajax的success函数将跳转到Success.jsp,只需要在该页面获取这个传过来的值就ok(Success.jsp)

            <%

                          String data = request.getParameter("data");//获取AJAX传输过来的值

            %>

          <h1><%=data %></h1>//==>Holler World!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值