iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >jspXCMS页面动态查询怎么实现
  • 107
分享到

jspXCMS页面动态查询怎么实现

2023-06-26 07:06:20 107人浏览 独家记忆
摘要

本篇内容主要讲解“jspXCMS页面动态查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jspXCMS页面动态查询怎么实现”吧!系统后台的列表页通常都有查询功能,如果通过写sql语句进

本篇内容主要讲解“jspXCMS页面动态查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jspXCMS页面动态查询怎么实现”吧!

系统后台的列表页通常都有查询功能,如果通过写sql语句进行查询非常费时,特别是在查询条件较多的情况下。如果查询条件发生变化,则需要修改sql语句,非常麻烦。

jspxcms使用页面动态查询来解决这个问题,直接解析查询表单的名称来生成sql查询条件,只要修改页面就可以实现查询,而不需要修改java代码和写sql语句。

/WEB-INF/views/plug/resume/resume_list.jsp(已做简化):

<fORM action="list.do" method="get">    名称:<input type="text" name="search_CONTaiN_name" value="${search_CONTAIN_name[0]}"/>    职位:<input type="text" name="search_CONTAIN_post" value="${search_CONTAIN_post[0]}"/>    开始日期:<input type="text" name="search_GTE_creationDate_Date" value="${search_GTE_creationDate_Date[0]}"/>    结束日期:<input type="text" name="search_LTE_creationDate_Date" value="${search_LTE_creationDate_Date[0]}" />    <button type="submit">搜索</button></form>
com.jspxcms.plug.domain.Resume;public class Resume {    private Integer id;    private Site site;    private String name;    private String post;    private Date creationDate;    private String gender;    private Date birthDate;    private String mobile;    private String email;    ...}

其中 search_CONTAIN_name search_CONTAIN_post search_GTE_creationDate_Date search_LTE_creationDate_Date 是关键内容。

  • search_ 是前缀,代表这个输入框用于构建搜索条件。

  • CONTAIN GTE LTE 是查询关键字。相当于 like >=  <=。

  • name post creationDate 是查询的字段。是com.jspxcms.plug.domain.Resume实体类中的属性名。

  • _Date 是类型后缀,默认是字符串,所以字符串不需要类型后缀;creationDate是日期,所以要加上_Date后缀。

最后的效果类似 where name like '%abc%' and post like '%def%' and creationDate >= 'xxxx-xx-xx' and creationDate <= 'xxxx-xx-xx'

保留页面查询条件值

点击查询按钮后,希望把之前的查询条件值依然保留在页面上。

value="${search_CONTAIN_name[0]}"的作用是将查询条件反填至页面,也就是点击查询按钮得到查询结果后,查询条件值依然显示在页面上,而不会变成空白。

如果name里面的值带有.号,则必须使用这种格式:

name="search_CONTAIN_detail.title" value="${requestScope['search_CONTAIN_detail.title'][0]}"

表连接

上面的例子是只查询当前实体类的字段。

查询many-to-one或one-to-one的关联实体类的字段用.分隔。比如search_CONTAIN_site.name。

查询many-to-many或one-to-many的关联实体类的字段需加上J前缀。比如Info查询中的search_CONTAIN_JinfoSpecials.Jspecial.title search_CONTAIN_JinfoTags.Jtag.name

查询条件

  • EQ :代表sql中的 =。

  • LIKE : 代表sql中的 like。

  • CONTAIN : 代表sql中的 like,且会在查询内容前后加上通配符,如 like '%abc%'。

  • STARTWITH : 代表sql中的 like,且会在查询内容后加上通配符,如 like 'abc%'。

  • ENDWITH : 代表sql中的 like,且会在查询内容后前上通配符,如 like '%abc'。

  • GT : 代表sql中的 >。

  • LT : 代表sql中的 <。

  • GTE : 代表sql中的 >=。

  • LTE : 代表sql中的 <=。

  • IN : 代表sql中的 in。

字段类型后缀

  • String:默认类型,不指定类型则默认为该类型。

  • Integer

  • Long

  • Float

  • Double

  • BigDecimal

  • BigInteger

  • Boolean

  • Date

  • Timestamp

Controller

package com.jspxcms.plug.web.back;public class ResumeController {    @RequiresPermissions("plug:resume:list")    @RequestMapping("list.do")    public String list(@PageableDefault(sort = "id", direction = Direction.DESC) Pageable pageable,                       httpservletRequest request, org.springframework.ui.Model modelMap) {        Integer siteId = Context.getCurrentSiteId();        // 获取`search_`开头的查询字段        Map<String, String[]> params = Servlets.getParamValuesMap(request, Constants.SEARCH_PREFIX);        Page<Resume> pagedList = service.findAll(siteId, params, pageable);        modelMap.addAttribute("pagedList", pagedList);        return "plug/resume/resume_list";    }

在Controller中需要获取search_开头的查询参数:Map<String, String[]> params = Servlets.getParamValuesMap(request, Constants.SEARCH_PREFIX);

Service

package com.jspxcms.plug.service.impl;public class ResumeServiceImpl implements ResumeService, SiteDeleteListener {    public Page<Resume> findAll(Integer siteId, Map<String, String[]> params, Pageable pageable) {        return dao.findAll(spec(siteId, params), pageable);    }    private Specification<Resume> spec(final Integer siteId, Map<String, String[]> params) {        // 解析页面传递过来的params参数        Collection<SearchFilter> filters = SearchFilter.parse(params).values();        final Specification<Resume> fsp = SearchFilter.spec(filters, Resume.class);        Specification<Resume> sp = new Specification<Resume>() {            public Predicate toPredicate(Root<Resume> root, CriteriaQuery<?> query, CriteriaBuilder cb) {                // 此处可以增加额外查询条件。属于JPA的用法,具体请查看JPA文档。                Predicate pred = fsp.toPredicate(root, query, cb);                if (siteId != null) {                    pred = cb.and(pred, cb.equal(root.get("site").<Integer>get("id"), siteId));                }                return pred;            }        };        return sp;    }}

查询解析类: com.jspxcms.common.orm.SearchFilter。

到此,相信大家对“jspXCMS页面动态查询怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: jspXCMS页面动态查询怎么实现

本文链接: https://www.lsjlt.com/news/307459.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • jspXCMS页面动态查询怎么实现
    本篇内容主要讲解“jspXCMS页面动态查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jspXCMS页面动态查询怎么实现”吧!系统后台的列表页通常都有查询功能,如果通过写sql语句进...
    99+
    2023-06-26
  • jspXCMS静态化页面怎么设置
    这篇文章主要介绍“jspXCMS静态化页面怎么设置”,在日常操作中,相信很多人在jspXCMS静态化页面怎么设置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jspXCMS静态化页面怎么设置”的疑惑有所帮助!...
    99+
    2023-06-26
  • Jspxcms页面静态化怎么设置
    本篇内容介绍了“Jspxcms页面静态化怎么设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!生成静态页是提高网站访问速度的办法之一。静态页...
    99+
    2023-06-26
  • LINQ中怎么实现动态查询
    今天就跟大家聊聊有关LINQ中怎么实现动态查询,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。LINQ动态查询实现实例:case 'L': &nbs...
    99+
    2023-06-17
  • MybatisPlus实现分页查询和动态SQL查询的示例代码
    目录一、描述二、实现方式三、 总结一、描述 实现下图中的功能,分析一下该功能,既有分页查询又有根据计划状态、开始时间、公司名称进行动态查询。 二、实现方式 Controller层...
    99+
    2024-04-02
  • Linq中怎么实现动态条件查询
    本篇文章给大家分享的是有关Linq中怎么实现动态条件查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在开发项目的过程中,我们经常会遇到这样的需求,动态组合条件的查询。比如淘宝...
    99+
    2023-06-17
  • JavaScript怎么实现页面动态验证码
    小编给大家分享一下JavaScript怎么实现页面动态验证码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果图: 实现思路:把数字和字母放到一个数组中...
    99+
    2023-06-14
  • Android studio怎么实现动态背景页面
    本篇内容介绍了“Android studio怎么实现动态背景页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:在res目录...
    99+
    2023-06-30
  • oracle怎么实现分页查询
    在Oracle中,可以通过使用ROWNUM和子查询来实现分页查询。以下是一个示例:```sqlSELECT * FROM (SELECT column1, column2, ..., ROWNUM AS rnFROM y...
    99+
    2023-08-11
    oracle
  • MyBatis中动态SQL及关联查询怎么实现
    小编给大家分享一下MyBatis中动态SQL及关联查询怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!序言 MyBatis,大家都知道,半自动的ORM框架,原来叫ibatis,后来好...
    99+
    2024-04-02
  • Ajax怎么实现分页查询
    这篇文章给大家分享的是有关Ajax怎么实现分页查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。要求:获取数据库中大量的信息显示在页面上,必然要使用到分页查询;若不使用Ajax,...
    99+
    2024-04-02
  • Superset实现动态SQL查询功能
    使用自定义参数方式实现 superset 实现SQL动态查询 1、启用参数:config.py 设置"ENABLE_TEMPLATE_PROCESSING": True 2、当前su...
    99+
    2024-04-02
  • Mybatis分页查询怎么实现
    小编给大家分享一下Mybatis分页查询怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们实现查询除了@org.junit.Test  ...
    99+
    2023-06-28
  • Vue分页查询怎么实现
    我编写了一个简单的前端页面用来查询数据,页面一共有几个逻辑 具体的效果可以看下面的演示 下面就来看一下具体的实现步骤。 首先看一下vue的代码 <script type="...
    99+
    2023-05-15
    Vue分页查询实现 Vue分页功能
  • MyBatis-Plus多表联查的实现方法(动态查询和静态查询)
    目录建库建表依赖配置代码测试1.静态查询2.动态查询 1.不传条件2.传条件建库建表 DROP DATABASE IF EXISTS mp; CREATE DATA...
    99+
    2024-04-02
  • Android studio实现动态背景页面
    本文实例为大家分享了Android studio实现动态背景页面的具体代码,供大家参考,具体内容如下 第一步: 在res目录下创建raw文件夹,并把想要导入的视频放在里面 可以用格式...
    99+
    2024-04-02
  • HTML+CSS怎么实现动态背景登录页面
    这篇文章给大家分享的是有关HTML+CSS怎么实现动态背景登录页面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 实现背景图片的动态变换首先在HTML页面body板块中,添加图片div,代码如下:<bo...
    99+
    2023-06-08
  • Flink中动态表上的连续查询怎么实现
    这篇文章主要介绍了Flink中动态表上的连续查询怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用SQL分析数据流越来越多的公司在采用流处理技术,并将现有的批处理应用程...
    99+
    2023-06-19
  • Vue怎么实现动态查询规则生成组件
    这篇文章给大家分享的是有关Vue怎么实现动态查询规则生成组件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 动态查询规则动态查询规则,大致如下图所示。是可以按照用户的自定义进行组织查询语句的一种复杂组件,大致...
    99+
    2023-06-15
  • 怎么使用JPA+querydsl实现多条件动态查询
    这篇文章将为大家详细讲解有关怎么使用JPA+querydsl实现多条件动态查询,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JPA querydsl多条件动态查询相信很多人在做订单管理的时候会用到多条件的...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作