if (StringUtils.isNotBlank(option)) { boolean containsOptionTag = false; for (String s : ifContain) { containsOptionTag = option.contains(s); } if (containsOptionTag) { sb.append("<span>").append(option).append("</span>"); } else { sb.append("<span>").append(ifContain[0]).append(" ").append(option).append("</span>"); } } 什么意思
时间: 2024-04-27 19:20:09 浏览: 12
这段代码是用来在HTML中添加选项标记的。其中,`option`是一个字符串变量,表示选项的内容;`ifContain`是一个String类型的数组,其中包含了选项标记的关键字;`sb`是一个StringBuffer对象,用于将HTML字符串累加起来。
代码逻辑是这样的:首先判断`option`是否为空或者只包含空格,如果不是,就遍历`ifContain`数组中的每一个关键字,判断`option`中是否包含这个关键字。如果包含,就将`option`用`<span>`标签包裹起来,如果不包含,则将`ifContain[0]`和`option`用空格分隔后,再用`<span>`标签包裹起来。最后将结果拼接到`sb`中。
相关问题
StringUtils.isNotBlank和StringUtils.isNotEmpty
StringUtils.isNotBlank和StringUtils.isNotEmpty是StringUtils工具类中的两个方法,用于判断字符串是否不为空。
StringUtils.isNotEmpty方法判断参数是否不为空,如果不为空则返回true,如果为空则返回false。例如,StringUtils.isNotEmpty(null)返回false,StringUtils.isNotEmpty("")返回false,StringUtils.isNotEmpty("a")返回true,StringUtils.isNotEmpty(" ")返回true。
StringUtils.isNotBlank方法判断参数是否不为空且不包含空白字符,如果满足条件则返回true,否则返回false。例如,StringUtils.isNotBlank(null)返回false,StringUtils.isNotBlank("")返回false,StringUtils.isNotBlank(" ")返回false,StringUtils.isNotBlank("\t \n \f \r")返回false,StringUtils.isNotBlank("\b")返回true,StringUtils.isNotBlank("bob")返回true,StringUtils.isNotBlank(" bob ")返回true。
所以,StringUtils.isNotEmpty方法只判断参数是否不为空,而StringUtils.isNotBlank方法则判断参数是否不为空且不包含空白字符。
public TableDataInfo list(TAllParam tAllParam) { startPage(); List<TAllParam> list = tAllParamService.list(new LambdaQueryWrapper<TAllParam>() .like(StringUtils.isNotBlank(tAllParam.getMsc()),TAllParam::getMsc,StringUtils.isNotBlank(tAllParam.getMsc())?tAllParam.getMsc().toUpperCase():"") .like(StringUtils.isNotBlank(tAllParam.getClxh()),TAllParam::getClxh,tAllParam.getClxh()) .like(StringUtils.isNotBlank(tAllParam.getHbpl()),TAllParam::getHbpl(),tAllParam.getHbpl()) .like(StringUtils.isNotBlank(tAllParam.getVehRlzl()),TAllParam::getVehRlzl(),tAllParam.getVehRlzl()) .like(StringUtils.isNotBlank(tAllParam.getClyyxzcbh()),TAllParam::getClyyxzcbh,tAllParam.getClyyxzcbh()) .like(StringUtils.isNotBlank(tAllParam.getVehZbzl()),TAllParam::getVehZbzl(),tAllParam.getVehZbzl()) ); // 遍历List,根据MSC匹配查询T_VEHCERT_PRINT表和T_LOCK_VIN表 for (TAllParam param : list) { String msc = param.getMsc(); List<String> vinList = vehcertPrintService.getVinByMsc(msc); // 根据MSC查询对应的VIN列表 boolean isBlc = false; // 是否为保留车的标志位 for (String vin : vinList) { if (StringUtils.isNotBlank(vin) && lockVinService.isVinExisted(vin)) { isBlc = true; break; } } param.setBlc(isBlc ? "是" : ""); } // 如果查询条件中有blc字段,则按照该字段进行匹配查询 if (StringUtils.isNotBlank(tAllParam.getBlc())) { list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList()); } return getDataTable(list); }能不能优化代码,这样在循环中调用查询方法,每循环一次都要去查询对应的表一次,很拖时间,页面半天出不来
可以优化代码,可以考虑将查询操作放在循环外面,避免每次循环都去查询,可以考虑使用 Map 来存储 msc 和对应的 VIN 列表,然后在循环中根据 msc 取出对应的 VIN 列表进行操作。修改后的代码如下所示:
```
public TableDataInfo list(TAllParam tAllParam) {
startPage();
List<TAllParam> list = tAllParamService.list(new LambdaQueryWrapper<TAllParam>()
.like(StringUtils.isNotBlank(tAllParam.getMsc()),TAllParam::getMsc,StringUtils.isNotBlank(tAllParam.getMsc())?tAllParam.getMsc().toUpperCase():"")
.like(StringUtils.isNotBlank(tAllParam.getClxh()),TAllParam::getClxh,tAllParam.getClxh())
.like(StringUtils.isNotBlank(tAllParam.getHbpl()),TAllParam::getHbpl(),tAllParam.getHbpl())
.like(StringUtils.isNotBlank(tAllParam.getVehRlzl()),TAllParam::getVehRlzl(),tAllParam.getVehRlzl())
.like(StringUtils.isNotBlank(tAllParam.getClyyxzcbh()),TAllParam::getClyyxzcbh,tAllParam.getClyyxzcbh())
.like(StringUtils.isNotBlank(tAllParam.getVehZbzl()),TAllParam::getVehZbzl(),tAllParam.getVehZbzl())
);
// 遍历List,根据MSC匹配查询T_VEHCERT_PRINT表和T_LOCK_VIN表
Map<String, List<String>> mscToVinListMap = new HashMap<>();
for (TAllParam param : list) {
String msc = param.getMsc();
if (!mscToVinListMap.containsKey(msc)) {
List<String> vinList = vehcertPrintService.getVinByMsc(msc);
mscToVinListMap.put(msc, vinList);
}
List<String> vinList = mscToVinListMap.get(msc);
boolean isBlc = false; // 是否为保留车的标志位
for (String vin : vinList) {
if (StringUtils.isNotBlank(vin) && lockVinService.isVinExisted(vin)) {
isBlc = true;
break;
}
}
param.setBlc(isBlc ? "是" : "");
}
// 如果查询条件中有blc字段,则按照该字段进行匹配查询
if (StringUtils.isNotBlank(tAllParam.getBlc())) {
list = list.stream().filter(param -> tAllParam.getBlc().equals(param.getBlc())).collect(Collectors.toList());
}
return getDataTable(list);
}
```
通过以上优化,可以避免在循环中重复查询,提高代码的执行效率。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)