最近一个月在搞项目,该项目用的技术还是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晓码阁 版权所有