最近一个月在搞项目,该项目用的技术还是SSM,有些技术的应用还是值得记录一下;本篇博客不涉及前后端分离、分布式,吃瓜群众绕行;
与之相关的技术博客有:http://47.100.191.44/blog/articles/5
本篇博客主要讲如何自定义标签函数,它的作用比较强大,
可以用它来实现数据字典的读取与转换:http://47.100.191.44/blog/articles/388
自定义jsp标签函数的三个步骤:
1、工具类
2、tld文件
3、导入tld文件
工具类
User.java
package com.javaxl.ssm.entity; /** * @author 小李飞刀 * @site www.javaxl.com */ public class User { private String id; private String name; private int age; public User() { } public User(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + '}'; } }
DemoUtil.java
package com.javaxl.ssm.util; import com.javaxl.ssm.entity.User; /** * @author 小李飞刀 * @site www.javaxl.com */ public class DemoUtil { /** * 假设是获取到系统的当前登录用户 * @return */ public static User getUser(){ System.out.println("先从缓存里拿,缓存没有查数据库,查完了丢到缓存里,然后返回页面"); return new User("001","小李飞刀",28); } /** * 模拟从数据库中查询出id对应的数据 * @param id * @return */ public static User getUserById(String id){ System.out.println("模拟从数据库中查询出id对应的数据"); return new User(id,"小李飞刀_"+id,28+Integer.valueOf(id)); } }
tld文件
<?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0"> <description>JSTL 1.1 functions library</description> <display-name>JSTL functions</display-name> <tlib-version>1.1</tlib-version> <short-name>javaxlfn</short-name> <uri>/javaxlfn</uri> <function> <description> 假设是获取到系统的当前登录用户 </description> <!--前端页面使用的函数名--> <name>getUser</name> <!--工具类--> <function-class>com.javaxl.ssm.util.DemoUtil</function-class> <!--工具类内部的方法--> <function-signature>com.javaxl.ssm.entity.User getUser()</function-signature> <example> ${javaxlfn:getUser()} </example> </function> <function> <description> 假设是获取到系统的当前登录用户 </description> <name>getUserById</name> <function-class>com.javaxl.ssm.util.DemoUtil</function-class> <function-signature>com.javaxl.ssm.entity.User getUserById(java.lang.String)</function-signature> <example> ${javaxlfn:getUserById('001')} </example> </function> </taglib>
导入tld文件
输入
http://localhost:8080/index.jsp
测试结果
如果是传统项目,不是前后端分离的话,用这种方式来处理数据字典以及相似的场景更加灵活;
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有