博客信息

自定义jsp标签函数

发布时间:『 2020-09-10 09:27』  博客类别:前端框架  阅读(595)

最近一个月在搞项目,该项目用的技术还是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

测试结果


小李飞刀_前端框架



如果是传统项目,不是前后端分离的话,用这种方式来处理数据字典以及相似的场景更加灵活;



关键字:     jsp标签       ssm  

备案号:湘ICP备19000029号

Copyright © 2018-2019 javaxl晓码阁 版权所有