欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java封裝前端查詢條件通用版

 更新時間:2019年05月28日 11:17:56   作者:jackethans  
這篇文章主要為大家詳細介紹了java封裝前端查詢條件的通用版,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java封裝前端查詢條件的具體代碼,供大家參考,具體內(nèi)容如下

import hengyi.oa.mobile.exception.ServiceException;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
 
 
/**
 * 查詢條件封裝類
 * @author  Xue.YQ
 * @created 2018年11月11日
 */
public class TableTagBean
{
 public static final int DEFAULT_PAGE_SIZE = 20;
 
 private static final String DELIMITER = "\n";
 
 private int m_page;
 
 private int m_pageSize = DEFAULT_PAGE_SIZE;
 
 private int m_total;
 
 private String m_orderBy;
 
 private boolean m_asc;
 
 private StringMap m_condition = new StringMap();
 
 private List m_list;
 
 private boolean m_builded = false;
 
 private String m_conditionParam = null;
 
 private int m_pageCount;
 
 private boolean m_canPrev;
 
 private boolean m_canNext;
 
 public TableTagBean() {}
 
 public boolean getAsc() {
  return m_asc;
 }
 
 public void setAsc(boolean asc) {
  ensureNotBuilded();
  m_asc = asc;
 }
 
 public StringMap getCondition() {
  return m_condition;
 }
 
 public void setCondition(StringMap condition) {
  ensureNotBuilded();
  m_condition = condition;
 }
 
 public String getOrderBy() {
  return m_orderBy;
 }
 
 public void setOrderBy(String orderBy) {
  ensureNotBuilded();
  m_orderBy = orderBy;
 }
 
 public int getPage() {
  return m_page;
 }
 
 public void setPage(int page) {
  ensureNotBuilded();
  m_page = page;
 }
 
 public int getPageSize() {
  return m_pageSize;
 }
 
 public void setPageSize(int pageSize) {
  ensureNotBuilded();
  m_pageSize = pageSize;
 }
 
 public int getTotal() {
  return m_total;
 }
 
 public void setTotal(int total) {
  ensureNotBuilded();
  m_total = total;
 }
 
 public List getList() {
  return m_list;
 }
 
 public void setList(List list) {
  ensureNotBuilded();
  m_list = list;
 }
 
 public void ensureNotBuilded() {
  if (m_builded) {
   throw new IllegalStateException(
     "Can't set attribute to TableTagBean after build() is called.");
  }
 }
 
 public boolean getCanNext() {
  return m_canNext;
 }
 
 public boolean getCanPrev() {
  return m_canPrev;
 }
 
 public String getConditionParam() {
  return m_conditionParam;
 }
 
 public int getPageCount() {
  return m_pageCount;
 }
 
 public void build() throws UnsupportedEncodingException {
 
  if (m_condition.size() > 0) {
   m_conditionParam = CryptoUtil.base64url_encode(m_condition
     .toString(DELIMITER).getBytes("GBK"));
  }
 
  if (m_total % m_pageSize != 0) {
   m_pageCount = m_total / m_pageSize + 1;
  } else {
   m_pageCount = m_total / m_pageSize;
  }
 
  m_canPrev = m_page > 0;
  m_canNext = m_page < m_pageCount - 1;
 
  m_builded = true;
 }
 
 public static TableTagBean getFromRequest(HttpServletRequest req)
   throws UnsupportedEncodingException {
  TableTagBean r = new TableTagBean();
 
  String p = req.getParameter("p");
  if (StringUtils.isNotEmpty(p) ) {
   r.setPage(Integer.parseInt(p));
  }
  String o = req.getParameter("o");
  if (StringUtils.isNotEmpty(o)) {
   r.setOrderBy(o);
  }
  String a = req.getParameter("a");
  if (StringUtils.isNotEmpty(a)) {
   r.setAsc(a.equals("1"));
  }
  String c = req.getParameter("c");
  if (StringUtils.isNotEmpty(c)) {
   r.setCondition(decodeConditionParam(c));
  }
 
  return r;
 }
 
 private static StringMap decodeConditionParam(String c)
   throws UnsupportedEncodingException {
  String s = new String(CryptoUtil.base64url_decode(c), "GBK");
  return new StringMap(s, DELIMITER);
 }
 
 public String getQueryParameter() {
  StringBuffer sb=new StringBuffer();
  
  sb.append("p="+m_page);
  if(m_orderBy!=null) {
   sb.append("&o="+m_orderBy+"&a="+(m_asc?"1":"0"));
  }
  
  if(m_conditionParam!=null) {
   sb.append("&c="+m_conditionParam);
  }
  
  return sb.toString();
 }
 
 @Override
 public String toString() {
  StringBuffer sb = new StringBuffer();
 
  sb.append("[TableTagBean]\r\n");
  sb.append("m_page: " + m_page + "\r\n");
  sb.append("m_pageSize :" + m_pageSize + "\r\n");
  sb.append("m_total :" + m_total + "\r\n");
  sb.append("m_orderBy :" + m_orderBy + "\r\n");
  sb.append("m_asc :" + m_asc + "\r\n");
  sb.append("m_condition :" + m_condition + "\r\n");
  sb.append("m_list(size) :" + m_list.size() + "\r\n");
  sb.append("m_builded :" + m_builded + "\r\n");
  sb.append("m_conditionParam :" + m_conditionParam + "\r\n");
  sb.append("m_pageCount :" + m_pageCount + "\r\n");
  sb.append("m_canPrev :" + m_canPrev + "\r\n");
  sb.append("m_canNext :" + m_canNext + "\r\n");
 
  return sb.toString();
 }
 
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public static TableTagBean getFromParameter(HttpServletRequest request)
  throws ServiceException
  {
  String start = request.getParameter("start");
  String limit = request.getParameter("limit");
  String asc = request.getParameter("dir");
  String orderBy = request.getParameter("sort");
  int page = (start != null) ? Integer.parseInt(start) : 0;
  int pageSize = (limit != null) ? Integer.parseInt(limit) : 30;
  boolean isAsc = "ASC".equals(asc);
 
  TableTagBean ttb = new TableTagBean();
  ttb.setPage(page);
  ttb.setPageSize(pageSize);
  ttb.setOrderBy(orderBy);
  ttb.setAsc(isAsc);
   
  
  Map<String, String[]> m = request.getParameterMap();
  String isEncodeURI = request.getParameter("isEncodeURI");
  if (m != null) {
   for (Entry entry : m.entrySet()) {
   String key = (String)entry.getKey();
   Object[] value = (Object[])entry.getValue();
   
//   if("Y".equals(isEncodeURI)){
//    String v= java.net.URLDecoder.decode(value[0].toString(), "UTF-8");
//    ttb.getCondition().put(key, (value[0] == null) ? null :v);
//   }else{
    ttb.getCondition().put(key, (value[0] == null) ? null : value[0].toString());
//   }
   }
  }
  return ttb;
  }
 
}

 調(diào)用之處:

@RequestMapping("/listAgentAwaitRepor")
 public List<DepartmentOfficeDTO> listAgentAwaitRepor(HttpServletRequest request) throws ServiceException
 {
  TableTagBean ttb = TableTagBean.getFromParameter(request);
  return oldAgentAwaitReportSearchFacade.list(ttb);
 }

取值之處:

String titleName = ttb.getCondition().get("titleName");
 if(!GenericValidator.isBlankOrNull(titleName))
 {
  sql.append(" and biz.biz_title like :bizTitle ");
  sqlParams.put("bizTitle", "%"+titleName.trim()+"%");
 }

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中Http連接的兩種方式(小結(jié))

    Java中Http連接的兩種方式(小結(jié))

    這篇文章主要介紹了Java中Http連接的兩種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Spring的Eureka續(xù)約(心跳檢測)詳解

    Spring的Eureka續(xù)約(心跳檢測)詳解

    這篇文章主要介紹了Spring的Eureka續(xù)約(心跳檢測)詳解,eureka?client每隔一定的時間,會給eureka?server發(fā)送心跳,保持心跳,讓eureka?server知道自己還活著,需要的朋友可以參考下
    2023-11-11
  • 全面解析Java中的注解與注釋

    全面解析Java中的注解與注釋

    這篇文章主要介紹了Java中的注解與注釋,簡單來說注解以@符號開頭而注釋被包含在/***/符號中,各自具體的作用則來看本文詳解,需要的朋友可以參考下
    2016-05-05
  • springboot創(chuàng)建監(jiān)聽和處理事件的操作方法

    springboot創(chuàng)建監(jiān)聽和處理事件的操作方法

    這篇文章主要介紹了springboot創(chuàng)建監(jiān)聽和處理事件的操作方法,使用Spring Boot的事件機制來監(jiān)聽和處理事件有多種優(yōu)勢,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2024-07-07
  • redisson分布式鎖的用法大全

    redisson分布式鎖的用法大全

    這篇文章主要介紹了redisson分布式鎖的用法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring實戰(zhàn)之XML與JavaConfig的混合配置詳解

    Spring實戰(zhàn)之XML與JavaConfig的混合配置詳解

    大家都知道Spring的顯示配置方式有兩種,一種是基于XML配置,一種是基于JavaConfig的方式配置。那么下這篇文章主要給大家分別介紹如何在JavaConfig中引用XML配置的bean以及如何在XML配置中引用JavaConfig,需要的朋友可以參考下。
    2017-07-07
  • springboot集成普羅米修斯(Prometheus)的方法

    springboot集成普羅米修斯(Prometheus)的方法

    這篇文章主要介紹了springboot集成普羅米修斯(Prometheus)的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • java中request常用方法小結(jié)

    java中request常用方法小結(jié)

    這篇文章主要介紹了java中request常用方法小結(jié),需要的朋友可以參考下
    2014-10-10
  • Eclipse/MyEclipse轉(zhuǎn)IntelliJ IDEA完全攻略(圖文)

    Eclipse/MyEclipse轉(zhuǎn)IntelliJ IDEA完全攻略(圖文)

    這篇文章主要介紹了Eclipse/MyEclipse轉(zhuǎn)IntelliJ IDEA完全攻略(圖文),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 使用SpringBoot進行身份驗證和授權(quán)的示例詳解

    使用SpringBoot進行身份驗證和授權(quán)的示例詳解

    在廣闊的 Web 開發(fā)世界中,身份驗證是每個數(shù)字領(lǐng)域的守護者,在本教程中,我們將了解如何以本機方式保護、驗證和授權(quán) Spring-Boot 應(yīng)用程序的用戶,并遵循框架的良好實踐,希望對大家有所幫助
    2023-11-11

最新評論