《SpringMVC從入門到放肆》10、SpringMVC註解式開發(複雜參數接收)

上一篇咱們學習了簡單的參數接收方式,以及對編碼的統一處理。今天咱們來接收對象參數。html

 

1、接收對象參數java

jsp頁面:app

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
    <form action="${pageContext.request.contextPath }/user/login.do">
        姓名:<input name="name" type="text" />
        年齡:<input name="age" type="text" />        
        <input type="submit" value="註冊" />
    </form>
  </body>
</html>

 

Entity:jsp

package cn.wechatbao.entity;

public class Student {
    private String name;
    private int age;
//省略getter、setter
}

 

Controller:學習

@RequestMapping("/login.do")
public ModelAndView login(Student student) throws Exception {
    System.out.println("name="+student.getName());
    System.out.println("age="+student.getAge());
    ModelAndView mv = new ModelAndView();
    mv.addObject("student", student);
    mv.setViewName("/WEB-INF/jsp/success.jsp");
    return mv;
}

 

成功的提示頁面(success.jsp):編碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>SpringMVC1</title>
  </head>
  
  <body>
       ${student }
  </body>
</html>

 

注意:總體接收須要表單的name屬性值與實體的屬性名一致。好比input的name爲age,那麼與之對應的實體類中,必須有一個age屬性,而且該age屬性須要有getter、setter方法。spa

 

2、域屬性參數接收code

域屬性參數就是在A類中有一個爲B類的屬性。這時,咱們對剛纔的代碼進行修改。新增School類。以下:orm

public class School {
    private String sname;
    private String address;
    //省略getter、setter
}

 

修改Student類,以下:htm

public class Student {
    private String name;
    private int age;
    private School school;
//省略getter、setter
}

 

修改index.jsp頁面的Form表單,以下:

<form action="${pageContext.request.contextPath }/user/login.do">
    姓名:<input name="name" type="text" />
    年齡:<input name="age" type="text" />  
    學校名稱:<input name="school.sname" type="text" />
    學校地址:<input name="school.address" type="text" />          
    <input type="submit" value="註冊" />
</form>

 

3、接收路徑變量

路徑變量不做過多的介紹,只要瞭解就OK了。訪問路徑以下:

http://localhost:8080/SpringMVC/user/zhangsan/24/register.do

Controller

@RequestMapping("/{name}/{age}/register.do")
public ModelAndView register(@PathVariable String name,@PathVariable int age) throws Exception {
    System.out.println("name="+name);
    System.out.println("age="+age);
    ModelAndView mv = new ModelAndView();
    mv.addObject("name", name);
    mv.addObject("age", age);
    mv.setViewName("/WEB-INF/jsp/success.jsp");
    return mv;
}

 

注意:只是使用了一個@PathVariable的註解,該註解也能夠指定name,如@PathVariable("pname")之類的。

相關文章
相關標籤/搜索