1. 下拉框实例类

import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils; public class CodeNameItem { /**
* Build a CodeNameItem instance from an object with given mapping properties.
*
* @param obj
* @param idProps
* @param codeProps
* @param nameProps
* @param descProps
* @return
*/
public static CodeNameItem fromObject(Object obj, String idProps, String codeProps, String nameProps,
String descProps) {
Long id;
try {
id = (Long) PropertyUtils.getProperty(obj, idProps);
String code = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, codeProps));
String name = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, nameProps));
String description = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, descProps));
return new CodeNameItem(id, null, code, name, description, description);
} catch (Exception e) {
e.printStackTrace();
}
return null;
} /**
* Build a CodeNameItem instance from an object with given mapping properties.
*
* @param obj
* @param idProps
* @param codeProps
* @param nameProps
* @param descProps
* @param markStatus 启用
* @return
*/
public static CodeNameItem fromObject(Object obj, String idProps, String codeProps, String nameProps,
String descProps,String markStatus) {
Long id;
try {
id = (Long) PropertyUtils.getProperty(obj, idProps);
String code = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, codeProps));
String name = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, nameProps));
String description = StringUtils.defaultString((String) PropertyUtils.getProperty(obj, descProps));
Object property=null;
try {
property=PropertyUtils.getProperty(obj, markStatus);
}catch(Exception e) {
property=true;
}
//判断人员markStatus字段类型
Boolean status=null;
if(property instanceof Boolean) {
status=(Boolean)PropertyUtils.getProperty(obj, markStatus);
}else if(property instanceof Integer) {
Integer num=(Integer)property;
status=num==1?true:false;
}else if(property instanceof Long) {
Integer num=1;
status=property.equals(num.longValue())?true:false;
}else if(property instanceof String) {
status = BooleanUtils.toBoolean((String)property);
}else {
//其他类型默认都是启用的
status=true;
}
return new CodeNameItem(id, null, code, name, description, description,status);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private Long id = null; private String type; private String code; private String name;
private String description; /**
* @Fields descriptionEn : CodeList中的英文描述,2013-01-23,yangzhi
*/
private String descriptionEn;
private String funcCn;// BIZCodeList功能中文描述 private String funcEn; // BIZCodeList 功能英文描述 public CodeNameItem() {
} public CodeNameItem(Long id, String type, String code, String name, String description) {
super();
this.id = id;
this.type = type;
this.code = code;
this.name = (name == null || "".equals(name)) ? "" : name;
this.description = (description == null || "".equals(description)) ? "" : description;
} /**
* 创建一个新的实例 CodeNameItem,此构造方法能创建CodeList中有英文描述
*
* @param id
* @param type
* @param code
* @param name
* @param description
* @param descriptionEn
*/
public CodeNameItem(Long id, String type, String code, String name, String description, String descriptionEn) {
super();
this.id = id;
this.type = type;
this.code = code;
this.name = (name == null || "".equals(name)) ? "" : name;
this.description = (description == null || "".equals(description)) ? "" : description;
this.descriptionEn = (descriptionEn == null || "".equals(descriptionEn)) ? "" : descriptionEn;
} /**
* 创建一个新的实例 CodeNameItem,此构造方法能创建codelist启用不启用
*
* @param id
* @param type
* @param code
* @param name
* @param description
* @param descriptionEn
*/
public CodeNameItem(Long id, String type, String code, String name, String description, String descriptionEn,Boolean markStatus) {
super();
this.id = id;
this.type = type;
this.code = code;
this.name = (name == null || "".equals(name)) ? "" : name;
this.description = (description == null || "".equals(description)) ? "" : description;
this.descriptionEn = (descriptionEn == null || "".equals(descriptionEn)) ? "" : descriptionEn;
} /**
* 创建一个新的实例 CodeNameItem,此构造方法能创建CodeList中有英文描述
*
* @param id
* @param type
* @param code
* @param name
* @param description
* @param descriptionEn
* @param funcCn
* @param funcEn
*/
public CodeNameItem(Long id, String type, String code, String name, String description, String descriptionEn,
String funcCn, String funcEn) {
super();
this.id = id;
this.type = type;
this.code = code;
this.name = (name == null || "".equals(name)) ? "" : name;
this.description = (description == null || "".equals(description)) ? "" : description;
this.descriptionEn = (descriptionEn == null || "".equals(descriptionEn)) ? "" : descriptionEn;
this.funcCn = (funcCn == null || "".equals(funcCn)) ? "" : funcCn;
this.funcEn = (funcEn == null || "".equals(funcEn)) ? "" : funcEn;
} public int compare(CodeNameItem item) {
return (this.getCode() + this.getName()).compareToIgnoreCase(item.getCode() + item.getName());
} @Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (getClass() != obj.getClass())
return false;
final CodeNameItem other = (CodeNameItem) obj;
if (code == null) {
if (other.code != null)
return false;
} else if (!code.equals(other.code))
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
} public String getCode() {
return code;
} public String getDescription() {
return description;
} public String getDescriptionEn() {
return descriptionEn;
} public String getFuncCn() {
return funcCn;
} public String getFuncEn() {
return funcEn;
} public Long getId() {
return id;
} public String getLabel() {
return this.name;
} public String getName() {
return name;
} public String getType() {
return type;
} public String getValue() {
return this.code;
} @Override
public int hashCode() {
final int PRIME = 31;
int result = 1;
result = PRIME * result + ((code == null) ? 0 : code.hashCode());
result = PRIME * result + ((name == null) ? 0 : name.hashCode());
return result;
} public void setCode(String code) {
this.code = code;
} public void setDescription(String description) {
this.description = description;
} public void setDescriptionEn(String descriptionEn) {
this.descriptionEn = descriptionEn;
} public void setFuncCn(String funcCn) {
this.funcCn = funcCn;
} public void setFuncEn(String funcEn) {
this.funcEn = funcEn;
} public void setId(Long id) {
this.id = id;
} public void setName(String name) {
this.name = name;
} public void setType(String type) {
this.type = type;
} public String toString() {
return "id:" + id + "\ttype:" + type + "\tcode:" + code + "\tname:" + name + "\tdescription:" + description;
}
}

2.结果实例转换类

package org.testzl.zlqtms.controller.datasource;

import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors; public class CodeNameItemConvertor<T> {
private List<T> list; public CodeNameItemConvertor(List<T> list) {
this.list = list;
} public <U> List<U> map(Function<? super T, ? extends U> converter) {
if (list == null)
return null;
return list.stream().map(converter::apply).collect(Collectors.toList());
} }

3.使用案例

    @GetMapping("xxxxx")
public List<CodeNameItem> tbClaimTypes(@RequestParam(required=false) String q) {
BaseSearchViewModel baseSearchViewModel = new BaseSearchViewModel();
baseSearchViewModel.setLimit(200);
TbClaimType tbTrouble = new TbClaimType();
tbTrouble.setTypeCode(q);
tbTrouble.setCompany(userCompanyUtil.getUserCompany());
GridResult<TbClaimType> pageListByCode = tbClaimTypeService.query(baseSearchViewModel, tbTrouble);
return new CodeNameItemConvertor<TbClaimType>((List<TbClaimType>)pageListByCode.getBody())
.map(p -> CodeNameItem.fromObject(p, "id", "typeCode", "descZh", "descEn"));
}

java下拉框转换公共方法的更多相关文章

  1. jquery操作select下拉框的各种方法,获取选中项的值或文本,根据指定的值或文本选中select的option项等

    简介jquery里对select进行各种操作的方法,如联动.取值.根据值或文本来选中指定的select下拉框指定的option选项,读取select选中项的值和文本等. 这一章,站长总结一下jquer ...

  2. Selenium+java - 下拉框处理

    常见下拉框也分两种:一种是标准控件和非标准控件(一般为前端开发人员自己封装的下拉框),本篇文章中将重点讲解标准下拉框操作. 1.Select提供了三种选择某一项的方法 select.selectByI ...

  3. java下拉框,滚动条

    package com.soft.test; /** * 下拉列表.下拉框.滚动条的使用 */ import javax.swing.*; import java.awt.*; public clas ...

  4. jquery操作select下拉框的多种方法(选中,取值,赋值等)

    Query获取Select选择的Text和Value: 语法解释: 1. $("#select_id").change(function(){//code...}); //为Sel ...

  5. [selenium]选取下拉框内容的方法

    说明:本文章主要是对select元素操作的讲解,非select元素的下拉框需要另外分析 1.select元素示例: 2.select下拉框选取的3种方法 WebElement selector = d ...

  6. java 下拉框级联及相关(转)

    ActionLintsner都实现此接口,其它监听器可以监听的事件都可以被它捕获 public interface ActionListener extends EventListenerThe li ...

  7. angular 中自己常用的下拉框获取值方法

    方法一 HTML页中 <select name="" id="if02" data-first-option="true" (chan ...

  8. PHP下拉框选择的实现方法

    实现 第一种PHP下拉框实现方法: < ?php //提交下拉框; //直接饱触发onchange事件的结果 $id=$_GET['myselect']; // myselect 为locati ...

  9. easyUI combobox下拉框很长,easyUI combobox下拉框如何显示滚动条的解决方法

    如下图,combobox下拉框里内容很多时,会导致下拉框很长,很不美观. 如何使得combobox下拉框显示滚动条 方法:把属性panelHeight:"auto"注释掉即可. $ ...

随机推荐

  1. pdf文件在线预览

    使用pdfjs技术实现PDF的在线预览功能. 目录 1.官网下载pdf.js 2. 将下载下来的文件全部复制 3. js使用 4. java IO流 1.官网下载pdf.js 2. 将下载下来的文件全 ...

  2. 盘点 2021|「避坑宝典」为大家分享一下笔者在 2021 年所遇到“匪夷所思”的 Bug 趣事(上)

    正版内容:https://xie.infoq.cn/article/3145cd5f525fe26ce9d574c8d 2021尾声想跟大家说的话 虚则实之 引用 https://xie.infoq. ...

  3. ymal文档格式 处理

    Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块. 参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation

  4. 在myeclipse里加大tomcat内存,jdk内存方法

    这是在myeclipse里加大的方法: -Xms4096m -Xmx4096m -XX:MaxNewSize=4096m -XX:MaxPermSize=4096m 如图所示: -XX:PermSiz ...

  5. PHP伪协议-文件包含

    lfi.php案例代码 <?php include $_GET['file']; ?> phar://.zip://.zlib://   用于读取压缩文件,zip:// .phart:// ...

  6. SpringBoot整合nacos启动报错:java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata

    报错信息 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosCo ...

  7. 基于sqlitecpp的sqlite3 c++封装

    Github: 人富水也甜 感谢GitHub大佬: sqlitecpp github:  https://github.com/SRombauts/SQLiteCpp sqlite: https:// ...

  8. Linux下c++之常见错误代码errno(退而结网法)

    1.关于 还在到处找 errno对应的含义? 自己动手,很方便可找到其明确的含义 2. 动手 2.1 创建 c++源文件,输入下面的代码: #pragma once #include <iost ...

  9. 【LeetCode】203. Remove Linked List Elements 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 双指针 递归 日期 题目地址:https://lee ...

  10. 【LeetCode】173. Binary Search Tree Iterator 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 保存全部节点 只保留左节点 日期 题目地址:http ...