web项目开发,字典表信息工具类

17 篇文章 0 订阅
4 篇文章 0 订阅

在进行web项目开发时,一个系统往往有一些数据不是经常变化的,我们可以采用web项目启动服务时就加载,这样避免多次操作数据库。

1、定义ContextLoaderListener,我们在启动服务时就加载数据

InitSysDictListener.java

 

package com.ww.commons.web;

import java.util.List;

import javax.servlet.ServletContextEvent;

import org.springframework.web.context.ContextLoaderListener;

import com.ww.commons.utils.Constants;
import com.ww.commons.utils.SpringContextHolder;
import com.ww.mbuy.domain.SysDict;
import com.ww.mbuy.service.SysDictService;

public class InitSysDictListener extends ContextLoaderListener {

	private SysDictService sysDictService;

	@Override
	public void contextDestroyed(ServletContextEvent event) {

	}

	@Override
	public void contextInitialized(ServletContextEvent event) {
		// WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
		sysDictService = SpringContextHolder.getBean(SysDictService.SERVICE_NAME);
		// sysDictService = (SysDictService) context.getBean(SysDictService.SERVICE_NAME);
		// 获得字典中的所有信息
		List<SysDict> sysDictList = sysDictService.findAll();
		event.getServletContext().setAttribute(Constants.SYSDICT, sysDictList);
	}

}

 

2、web.xml中配置Listener

<listener>
        <listener-class>com.ww.commons.web.InitSysDictListener</listener-class>
</listener>

3、为了方便对字典表的操作,定义了一个工具类:SysDictUtil.java

 

/*
 * Copyright @ 2014 com.ww.trains
 * mbuy 下午8:11:25
 * All right reserved.
 *
 */
package com.ww.commons.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

import com.ww.mbuy.domain.SysDict;

/**
 * 字典表工具类
 * 
 * @desc: mbuy
 * @author: 
 * @createTime: 2014年12月28日 下午8:11:25
 * @history:
 * @version: v1.0
 */
public class SysDictUtil extends HttpServlet {

	/**
	 * 根据字典表type和lable字段,获得一条字典记录
	 * 
	 * @author: 
	 * @createTime: 2014年12月29日 上午9:04:00
	 * @history:
	 * @param request
	 * @param type
	 * @param lable
	 * @return SysDict
	 */
	public static SysDict getSysDictObject(HttpServletRequest request, String type, String lable) {
		List<SysDict> list = getSysDictList(request);
		Map<String, Object> map = getSysDictMap(list);
		SysDict obj = (SysDict) map.get(type + "-" + lable);
		return obj;
	}

	/**
	 * 根据字典表type字段,获得该类型下的所有字典信息
	 * 
	 * @author: 
	 * @createTime: 2014年12月29日 上午9:04:48
	 * @history:
	 * @param request
	 * @param type
	 * @return List<SysDict>
	 */
	public static List<SysDict> getSysDictObject(HttpServletRequest request, String type) {
		List<SysDict> list = getSysDictList(request);
		List<SysDict> sysDictByType = getSysDictByType(list, type);
		return sysDictByType;
	}

	/**
	 * 根据字典表单type字段获得list集合
	 * 
	 * @author: 
	 * @createTime: 2014年12月29日 上午8:55:51
	 * @history:
	 * @param list
	 * @param type
	 * @return List<SysDict>
	 */
	private static List<SysDict> getSysDictByType(List<SysDict> list, String type) {
		List<SysDict> nowDicts = new ArrayList<SysDict>();
		for (SysDict sysDict : list) {
			if (sysDict.getType().equals(type)) {
				nowDicts.add(sysDict);
			}
		}
		return nowDicts;
	}

	/**
	 * 从application获得字典表中的数据
	 * 
	 * @author: 
	 * @createTime: 2014年12月29日 上午8:51:32
	 * @history:
	 * @param request
	 * @return List<SysDict>
	 */
	private static List<SysDict> getSysDictList(HttpServletRequest request) {
		ServletContext application = request.getSession().getServletContext();
		List<SysDict> list = (List<SysDict>) application.getAttribute(Constants.SYSDICT);
		return list;
	}

	/**
	 * 将list结合转化为map集合
	 * 
	 * @author: 
	 * @createTime: 2014年12月28日 下午8:03:48
	 * @history:
	 * @param sysDictList
	 * @return Map<String,Object>
	 */
	private static Map<String, Object> getSysDictMap(List<SysDict> sysDictList) {
		Map<String, Object> map = new HashMap<String, Object>();
		for (SysDict sysDict : sysDictList) {
			map.put(sysDict.getType() + "-" + sysDict.getLabel(), sysDict);
		}
		return map;
	}

}

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
前后端完整 web 项目开发教程主要包括以下几个步骤: 1. 需求分析:首先明确项目的需求,包括功能、界面设计、用户需求等,明确项目的目标和范围。 2. 技术选型:根据项目需求和自身技术实力选择合适的开发框架和技术工具,如前端框架(Vue.js、React等)、后端框架(Spring Boot、Django等)以及数据库(MySQL、MongoDB等)等。 3. 数据库设计:根据项目需求设计数据库结构,包括的设计、字段的定义以及关系的建立等。 4. 前端开发:根据需求和界面设计,使用前端框架和技术工具进行开发,完成网页的搭建、样式布局、交互逻辑和数据展示等。 5. 后端开发:根据需求和功能设计,使用后端框架和技术工具进行开发,包括路由配置、接口编写、业务逻辑实现、数据处理和数据库操作等。 6. 前后端联调:前后端分别完成开发后,进行联调测试,确保前后端接口正常、数据正确传递和交互的流程顺畅。 7. 测试与优化:进行功能测试、性能测试、安全测试等,发现问题并进行优化,提高项目的稳定性和性能。 8. 部署与维护:根据项目情况选择合适的服务器环境搭建、项目部署和发布,同时进行系统维护、bug修复和功能迭代等。 以上是前后端完整 web 项目开发教程的主要步骤。在实际开发中,还需要严格按照需求文档进行开发,并进行项目管理和团队协作,以确保项目的顺利进行和交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间辜负了谁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值