MyBatis的收集數據和將數據轉發到頁面

收集數據

1.用屬性收集

實體類

public class User {
    private  Integer uid;
    private String uname;
    private String pass;
    	//構造方法,tostring方法,setget方法

}

控制器中
UserController

@Controller
public class UserController {		

	//刪除的方法
	@RequestMapping("/deleteUser")
	public String deleteUser(int uid){//獲取頁面的uid,頁面的名字和控制器中的名字要一樣
	    System.out.println(uid);
	    befer();
	    UserMapper mapper=session.getMapper(UserMapper.class);
	    int i = mapper.deleteUser(uid);
	    System.out.println(i);
	    after();
	    return "redirect:/TestAll.action?pageNum=1&pageSize=3";
	}
	
		
	
	
	
	public void befer(){
	    SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(getClass().getClassLoader().getResourceAsStream("mybatis-config.xml"));
	    session = factory.openSession();
	}
	
	public void after(){
	    session.commit();
	    session.close();
	}
	
}
2.用對象收集
@RequestMapping("updateUser")
public String updateUser(User user){//傳對象,頁面上就直接對象裏面的屬性名 比如<input type="text" name="uname"/>
    befer();
    UserMapper mapper=session.getMapper(UserMapper.class);
    int i = mapper.updateUser(user);
    System.out.println(i);
    after();
    return "redirect:/TestAll.action";//重定向
}

將數據轉發到頁面

第一種方式 request的方式
@RequestMapping("TestUser")
public String TestUser(HttpServletRequest request){
    User u=new User("小明","123456");
    request.setAttribute("user",u);
    return "index";
}
第二種方式 解耦合的方式
@RequestMapping("TestUser")
public String TestUser(Map  map){
    User u=new User("小明","123456");
    map.put("user",u);
    return "index";
}

頁面上

<c:foreach items="${user}" var="u">
	${u.uid}+${u.uname}+${u.password}
</c:foreach>
第三種方式 使用ModelAndView對象向頁面響應數據
public ModelAndView show(){
	//創建模型視圖對象
	ModelAndView model=new ModelAndView();
	model.addObject("uname","tome");
	//設置跳轉的視圖名稱
	model.setViewModel("success");
	return model;
}

頁面就直接獲取uname

響應json數據給瀏覽器

第一種方式

導入依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.61</version>
</dependency>

控制器中

@RequestMapping("testJson1")
public String testJson1(HttpServletResponse response){
	List<User> list=new ArrayList<>();
        list.add(new User("admin","123456"));
        list.add(new User("admin1","123456"));
	JSONObject object=new JSONObject();
	object.put("rows",list);
	System.out.println(object.toJSONString());
	try {
	    response.setContentType("text/html;charset=utf-8");
	    response.getWriter().print(object.toJSONString());
	} catch (IOException e) {
	    e.printStackTrace();
	}
	return null;
}
第二種springmvc的方式

導入依賴

<!-- jackson數據綁定 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
<!-- jackson轉換json數據的核心 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>
<!-- 註解 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
</dependency>

控制器中

    @ResponseBody
    @RequestMapping("getJson1")
    public Map<String,List> getJson1(){
	 Map<String,List> map=new HashMap<>();
        List<User> list=new ArrayList<>();
        list.add(new User("admin","123456"));
        list.add(new User("admin1","123456"));
	map.put("rows",list);
        return map;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章