Java实现集合多条件分页查询、JS解决前端图片展示破图bug

Java实现集合多条件分页查询

当页面上有多个查询条件查询时,为了减少代码量和优化程序,创建一个需要查询的对象实体,比如需求是用户展示需要支持用户id、username查询,我们不可能写两个方法作为第一次根据id查询,第二次根据username查询,这样两个方法那么你有想过调用两个方法,怎么结合到一个按钮上面吗,是在前端用js判断用户输入的内容?还是在java程序中判断,那如果我要查询的对象不止id和username呢?
这里就建议创建一个需要查询的实体,实体里面就包括id和username,要继承Page(分页),查询成功的查询,肯定要分页。然后在java程序中判断用户输入的信息,这里有牵扯到一个问题,如果用户要输入的输入框很多,那么用if判断条件是否不符合,比如前端有十个输入框,用if判断,如何处理,组合查询呢?又不知道用户输入的查询条件是什么?这个目前不知道解决方法,希望有解决方法的大佬可以评论留言,谢谢。

实体

创建实体,针对需要分页的对象使用Page,

@Data
public class SearchAgentBureauSchoolDTO extends Page {
    /**
     * 当前页
     */
    private Integer page;

    /**
     * 条数
     */
    private Integer pageSize;

    /**
     * 总页数
     */
    private Integer totalPage;
    /**
     * 开始页
     */
    private Integer starPage;

}
调用方法
searchBureauSchoolQO.getPage() ---前端传的page第几页
 searchBureauSchoolQO.getLimit()----前端传过来的展示条数
 dto.setRecords(pageByList) ---- 后端返回的条数
 dto.setTotal(searchAgentBureauSchoolDTOS.size())---共多少条
 dto.setTotalPage(pageByList.size()) 总页数
List pageByList = getPageByList(searchAgentBureauSchoolDTOS, searchBureauSchoolQO.getPage(), searchBureauSchoolQO.getLimit());
                dto.setRecords(pageByList);
                dto.setTotal(searchAgentBureauSchoolDTOS.size());
                dto.setTotalPage(pageByList.size());
分页方法
List resourceList -- 要分页的集合
Integer pageIndex--第几页
Integer pageSize--条数
    public List getPageByList(List resourceList, Integer pageIndex, Integer pageSize) {
        List pageList = new ArrayList<>();
        if (pageIndex < 1) {
            pageIndex = 1;
        }
        Integer size = resourceList.size();
        Integer pageCount = size / pageSize;
        Integer fromIndex = (pageIndex - 1) * pageSize;
        Integer toIndex = fromIndex + pageSize;
        if (toIndex >= size) {
            toIndex = size;
        }
        if (pageIndex > pageCount + 1) {
            fromIndex = 0;
            toIndex = 0;
        }
        pageList = resourceList.subList( fromIndex, toIndex );
        return pageList;

JS解决前端图片展示破图bug

来自一个前端大佬的帮忙。感谢大佬!!!
问题:当用户点击查询自己关注的公众号二维码展示,在数据库不中没有该图片,按照前端的效果就是要展示一张小图在右上角,这给用户的第一感觉就是,是不是我网络的问题、亦或者是我手机的问题,降低用户体验感、人性化问题
解决方法一:通过ajax请求,访问的图片地址,判断返回res,(百度的方法)尝试,未解决,存在url跨域访问问题,百度无法解决,
解决方法二:在Java程序中添加一段程序(具体忘记了,百度可查),搜索java程序请求访问地址返回请求的的响应码,当初是通过java程序访问链接地址,然后在实体类里面加一个字段,用于存储返回的响应码,最后再一起返回前端,再前端判断返回的响应码是否匹配来展示正确的图片或者用户不存在的二维码的图片展示,
解决方法三(来自前端的大佬):

function is_img_url(imgurl) {
    return new Promise(function(resolve, reject) {
        var ImgObj = new Image(); //判断图片是否存在
        ImgObj.src = imgurl;
        ImgObj.onload = function(res) {
            resolve(res);
        }
        ImgObj.onerror = function(err) {
            reject(err)
        }
    }).catch((e) => {}); 
(Uncaught (in promise))
}

你可能感兴趣的:(JS,java,java,js)