import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import cn.shinelon.vo.User;
import cn.shinelon.vo.UserQueryCondition;
/**
* @author Shinelon
*
*/
@RestController
public class UserController {
@RequestMapping(value="/user",method=RequestMethod.GET)
//required表示是否是必须要填的,false表示不需要,然后defaultValue表示默认值
// public List<User> query(@RequestParam(required=false,defaultValue="jerrty") String username){
//当前台需要传来多个值的时候,可以把参数封装到一个对象中
//pageable表示分页的信息,同样的,如果前台没有传来数据,也可以给分页信息来设置默认值
public List<User> query(UserQueryCondition condition,@PageableDefault(size=15,page=3,sort="username,asc") Pageable pageable){
System.out.println(pageable.getPageSize());
System.out.println(pageable.getPageNumber());
System.out.println(pageable.getSort());
//使用反射来输出查询的参数
System.out.println(ReflectionToStringBuilder.toString(condition,ToStringStyle.MULTI_LINE_STYLE));
List<User> list=new ArrayList<User>();
list.add(new User());
list.add(new User());
list.add(new User());
return list;
}
}
//required表示是否是必须要填的,false表示不需要,然后defaultValue表示默认值
// public List<User> query(@RequestParam(required=false,defaultValue="jerrty") String username){
//当前台需要传来多个值的时候,可以把参数封装到一个对象中
//pageable表示分页的信息,同样的,如果前台没有传来数据,也可以给分页信息来设置默认值
public List<User> query(UserQueryCondition condition,@PageableDefault(size=15,page=3,sort="username,asc") Pageable pageable){
public class UserQueryCondition {
public String username;
public String sex;
public int age;
public String address;
//省略set,get方法
}
public class User {
public String username;
public String password;
//省略set,get方法
}
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
/**
* @author Shinelon
*
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc=MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void whenQuerySuccess() throws Exception {
// mockMvc.perform(MockMvcRequestBuilders.get("/user")
// .contentType(MediaType.APPLICATION_JSON_UTF8))
// .andExpect(MockMvcResultMatchers.status().isOk())
// .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));
//在STS里的偏好设置中设置了这几个类,所以可以自动引入其静态方法
mockMvc.perform(get("/user")
// .param("username", "shinelon")
.param("username", "shinelon")
.param("sex", "male")
.param("age", "18")
.param("address", "北京市")
.param("size", "15") //分页的信息
.param("page", "3")
.param("sort", "age,desc") //按照年龄升序排列
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$.length()").value(3));
}
}
// mockMvc.perform(MockMvcRequestBuilders.get("/user")
// .contentType(MediaType.APPLICATION_JSON_UTF8))
// .andExpect(MockMvcResultMatchers.status().isOk())
// .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3));
mockMvc.perform(get("/user")
// .param("username", "shinelon")
.param("username", "shinelon")
.param("sex", "male")
.param("age", "18")
.param("address", "北京市")
.param("size", "15") //分页的信息
.param("page", "3")
.param("sort", "age,desc") //按照年龄升序排列
.contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(status().isOk())
.andExpect(jsonPath("$.length()").value(3));
15 3 age: DESC cn.shinelon.vo.UserQueryCondition@ee96866[ username=shinelon sex=male age=18 address=北京市 ]
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有