使用Servlet监听器动态更新select下拉列表
来源:互联网 发布:java简历工作描述 编辑:程序博客网 时间:2024/05/24 02:34
html layui +thymeleaf 内容是博客分类(自己正在写的这个博客需要用到这个)
<select id="blogTypeId" lay-verify="required" name="blogTypeId"lay-search><option value="selected"></option><option th:each="blogType:${application.blogTypeList}"th:value="${blogType.id}" th:text="${blogType.typeName}">博客类型A</option></select>
监听器
实现 ServletContextListener接口达到初始化加载sleect option
但是每次更新需要重服务器,太麻烦,修改也不能及时自己更新
因为这个数据是放在application中的所有可以再实现一个接口ServletContextAttributeListener,再监听修改操作
监听器
package cn.edu.jxnu.blog.listener;import java.util.List;import javax.servlet.ServletContext;import javax.servlet.ServletContextAttributeEvent;import javax.servlet.ServletContextAttributeListener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import org.springframework.context.ApplicationContext;import org.springframework.stereotype.Component;import org.springframework.web.context.support.WebApplicationContextUtils;import cn.edu.jxnu.blog.domin.BlogType;import cn.edu.jxnu.blog.service.BlogTypeService;@Component/** * @Description 监听程序初始化 */public class InitBlogTypeData implements ServletContextAttributeListener,ServletContextListener {private static ApplicationContext applicationContext;public void contextInitialized(ServletContextEvent sce) {// 先获取servlet上下文ServletContext application = sce.getServletContext();// 获取spring web上下文applicationContext = WebApplicationContextUtils.getWebApplicationContext(application);// System.out.println("上下文:"+applicationContext);BlogTypeService blogTypeService = applicationContext.getBean(BlogTypeService.class);// System.out.println("blogTypeService="+blogTypeService);List<BlogType> blogTypeList = blogTypeService.getBlogTypeData();application.setAttribute("blogTypeList", blogTypeList);System.out.println("ServletContextListener---(contextInitialized)...");}public void contextDestroyed(ServletContextEvent sce) {System.out.println("ServletContextListener---(contextDestroyed)...");}@Overridepublic void attributeAdded(ServletContextAttributeEvent args) {System.out.println("ServletContextAttributeListener---(attributeAdded)...");}/** * 后台更新分类数据的时候将清空ServletContext,此方法将监听,并重新添加blogTypeList */@Overridepublic void attributeRemoved(ServletContextAttributeEvent args) {// 先获取servlet上下文ServletContext application = args.getServletContext();// 获取spring web上下文applicationContext = WebApplicationContextUtils.getWebApplicationContext(application);// System.out.println("上下文:"+applicationContext);BlogTypeService blogTypeService = applicationContext.getBean(BlogTypeService.class);// System.out.println("blogTypeService="+blogTypeService);List<BlogType> blogTypeList = blogTypeService.getBlogTypeData();application.setAttribute("blogTypeList", blogTypeList);System.out.println("ServletContextAttributeListener---(attributeRemoved)...");}@Overridepublic void attributeReplaced(ServletContextAttributeEvent args) {System.out.println("ServletContextAttributeListener---(attributeReplaced)...");}}同时每次在controller的操作触发该监听
controller方法签名类似这种,传入一个request
@RequestMapping(value = "/delete")public String deleteBlog(@RequestParam(value = "ids", required = false) String ids,HttpServletResponse response, HttpServletRequest httpServletRequest)
在请求返回的同时触发监听器事件,清空或者改变application键值。 这里是选择直接删除
ServletContext application = httpServletRequest.getServletContext();application.removeAttribute("blogTypeList");不过这样很麻烦每次都需要触发这个清空的事件才能更新。不过比重启服务器好多了。
阅读全文
0 0
- 使用Servlet监听器动态更新select下拉列表
- ajax动态更新下拉列表
- js更新下拉列表select的值
- 动态增删select下拉列表的节点
- ‘select’的使用:下拉列表分组显示
- struts1中select下拉列表的使用
- html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)
- html+js+PHP(使用了smarty模板技术)+mysql实现二级动态下拉列表(select)
- 使用ajax动态加载select下拉框
- [JavaScript] 动态生成下拉列表select的选项
- [JavaScript] 动态删除下拉列表select的选项
- select 控件编辑 动态生成 下拉列表框
- 下拉列表select动态初始化 (JSP页面)
- 下拉列表select动态初始化 (JSP页面)
- asp.net动态生成select下拉列表内容
- select下拉列表, 从数据库查询,动态添加选项option
- select下拉列表级联
- 下拉列表 <s:select
- 退役贴
- Hbase的region详解
- 百度网盘直接下载
- 测试代码片
- eclipse 设置本地 DTD 约束配置
- 使用Servlet监听器动态更新select下拉列表
- uboot的常识
- 明白购隐私政策
- Win10基于docker安装TensorFlow(/PaddlePaddle)
- 自顶向下语法分析——编译原理
- 解决浏览器自动记住密码功能
- 一招完美解决SSD系统盘卡顿死机的问题!
- 佛罗里达州正在尝试建立超大规模数据中心
- Python WSGI 中文版