java web培训之实现按钮的查询功能(精准查询)
这里暂时没有用到数据库,只是在前端代码中将前端搜索框的输入传到后端后,直接进行比对(后端的表格内容也是前端传到后端存储到列表中)
1.equals 和 == 的区别
equals:用于比较两个对象的内容。
==:用于比较存放对象(栈)的(堆)内存地址。
public class test1 {
public static void main(String[] args) {
String a = new String("ab"); // a 为一个引用
String b = new String("ab"); // b为另一个引用,对象的内容一样
String aa = "ab"; // 放在常量池中
String bb = "ab"; // 从常量池中查找
if (aa == bb) // true
System.out.println("aa==bb");
if (a == b) // false,非同一对象
System.out.println("a==b");
if (a.equals(b)) // true
System.out.println("aEQb");
if (42 == 42.0) { // true
System.out.println("true");
}
} }
==只是比较引用,所以与运行速度比equals快
2.layUI框架中前端已经为我们提供了查询的返回数据,点击查询按钮后,除了返回页码和分页的最大值,还返回搜索框内的String内容
这里只需将返回的docRoom和列表(strList)中的对象的cname进行比较。
List<Boyfriend> resList = new ArrayList<>();
if(page.getDocRoom()!=null&&!page.getDocRoom().equals("")) {//判断是否点击查询按钮
for (Boyfriend bf : strList) {
if (bf.getCname().equals(page.getDocRoom()))
resList.add(bf);
}
}else{
resList = strList;
}
response.setCount(resList.size());
模糊查询
可直接将equals换成contains(区分大小写,返回值布尔型false(0)和(非零正数)
也可是indexof,但要修改:不区分大小写,返回在字符串中首次出现的位置(从0开始)不包含则返回-1