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. Android工具-DDMS

    原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6686578 本文章的前提:已经安装了Eclipse和ADT.androi ...

  2. Python中冷门但非常好用的内置函数

    Python中有许多内置函数,不像print.len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性 Counter collections在pyt ...

  3. Linux驱动实践:一起来梳理中断的前世今生(附代码)

    作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++.嵌入式.Linux. 关注下方公众号,回复[书籍],获取 Linux.嵌入式领域经典书籍:回复[PDF],获取所有原创文章( PDF 格式). ...

  4. .net core使用EF core连接mssqlserver数据库

    一,打开控制台二,输入以下代码1.Install-Package Microsoft.EntityFrameworkCore 2.Install-Package Microsoft.EntityFra ...

  5. birt分组时,如何让居中

    birt分组时,如何让居中,如下图,选择cell格,然后调整属性为all,如下图所示,

  6. vue+uniapp实现多任务并发下载文件 | 断点续下, 任务列表, 多任务并发限制

    一.插件简介 zhimi-downloadManager(智密 - 多任务下载管理插件)是一个支持多任务多并发下载,支持多/单任务管理,并且实时反馈任务下载进度的uniapp原生插件.平台支持:And ...

  7. 分享 NET 5.x 自定义文件日志实现 原汁原味

    下面直接贴出实现代码 FileLoggerProvider /// <summary> /// 文件记录器提供商 /// </summary> public class Fil ...

  8. 注解版mybatis动态语句将空字符串转换为null

    Convert.java import java.util.Map; import java.util.Objects; /** * * @ClassName: Convert * @Descript ...

  9. 【LeetCode】1111. Maximum Nesting Depth of Two Valid Parentheses Strings 有效括号的嵌套深度

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目讲解 划分规则讲解 返回结果讲解 解题方法 代码 日期 题目地址:ht ...

  10. 【剑指Offer】链表中倒数第k个节点 解题报告(Python)

    [剑指Offer]链表中倒数第k个节点 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://www.nowcoder.com/ta/coding-intervie ...