对于jstl相信都不陌生,但一般的开发者基本没有自己写过,我也是,最近因为项目的需要,所以写了个,简单的功能,第一次原创,希望大家能给点意见
多的不说直接上代码:
package com.nosyman.jstl;
import java.io.UnsupportedEncodingException;
/**
* 对给定字符串进行编码
* @author nosyman
* 交流:48135490
* 邮箱:1950935123@qq.com
*/
public class Base64 {
/**
* 进行base64加密
* @param uri 要进行base64加密的串
* @param encode 编码方式
* @return 新编码的字符串
*/
public static String encode(String src,String encode){
try {
return new String(com.nosyman.security.Base64.encode(src.getBytes(encode))).replace("=", "");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
}
package com.nosyman.jstl;
import java.io.UnsupportedEncodingException;
/**
* 对给定字符串进行编码
* @author nosyman
* 交流:48135490
* 邮箱:1950935123@qq.com
*/
public class EncodeURI {
/**
* 更改字符串编码
* @param uri 要进行编码的串
* @param encode 新的编码方式
* @return 新编码的字符串
*/
public static String encodeURI(String uri,String encode){
try {
return java.net.URLEncoder.encode(uri,encode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
}
上面是2个功能的类,下面是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">
<tlib-version>1.0</tlib-version>
<short-name>nm</short-name>
<uri>http://www.nosyman.com/jstl/functions</uri>
<!-- JSTL自定义函数 获取新的编码内容 -->
<function>
<name>encodeURI</name> <!-- 使用的方法名 -->
<function-class>com.nosyman.jstl.EncodeURI</function-class>
<function-signature>java.lang.String encodeURI(java.lang.String,java.lang.String)</function-signature>
</function>
<function>
<name>base64</name> <!-- 使用的方法名 -->
<function-class>com.nosyman.jstl.Base64</function-class>
<function-signature>java.lang.String encode(java.lang.String,java.lang.String)</function-signature>
</function>
</taglib>
这样就可以了,简单吧
不过要注意在function-signature标签里面,函数声明跟返回类型必须在同一行,否则会抛出org.apache.jasper.JasperException: Invalid syntax for function signature in TLD. Tag Library: xxx, Function: xxx
下面再说说使用方法:
像其他标签一样,先要导入 :
<%@ taglib prefix="nm" uri="http://www.nosyman.com/jstl/functions"%>
在用到的地方:
${nm:encodeURI('家纺','utf-8')}
${nm:base64('家纺','gbk')}这样就可以了
这样就好了。
有同样 功能 的直接下载jar包吧
最后说到短地址,只要按规则把后面的参数只要进行处理就可以了,到后台了重新按照一定的方式还原就可以了
分享到:
相关推荐
这里,`StringTag`是TLD文件中定义的短名称,`getShort`是自定义函数的名字,`str`是传递给该函数的参数。 总结:JSTL是JSP开发的强大工具,提供了诸如循环、条件判断、字符串操作等实用功能,并允许开发者创建...
在JSP中,模型通常由JavaBeans(JSP Bean)实现,视图由JSP页面呈现,控制器可以是Servlet或者自定义的Action类。 2. **JSP内置对象**: JSP提供了若干内置对象,如request、response、session、application等。在...
这样的系统通常用于在Web环境中实现用户间的即时通信功能,或者是系统向用户发送通知、提醒等信息。下面将详细阐述这个系统的组成部分和技术要点。 【JSP(Java Server Pages)】 JSP是Java平台上的动态网页技术,...
- **XMLHttpRequest对象**:为了提供更好的用户体验,论坛短消息可能会使用AJAX技术实现页面无刷新更新。学员将学习如何创建和使用XMLHttpRequest对象,以及解析返回的JSON或XML数据。 7. **安全性** - **防止SQL...
- Page:仅在当前JSP页面有效,生命周期很短。 - Request:在整个请求周期内有效,包括转发和包含,但不包括重定向。 - Session:在用户会话期间有效,直到会话超时或显式销毁。 - Application:在整个Web应用...
- 使用JSTL标签库中的函数,如`fn:substring`和`fn:length`,来限制短信息列表中每条信息的显示长度。 2. **状态区分:**通过不同的图标或样式来区分未读和已读信息的状态。 3. **列表生成:**根据用户的登录状态...
- `taglib`指令:引入自定义标签库,方便使用自定义组件。 3. **JSP脚本元素** - `<% %>`:脚本片段,可以插入Java代码。 - `<%= %>`:表达式标签,用于输出变量或表达式的值到页面。 - `! %>`:声明部分,用于...
例如,如果页面上的某个表单元素需要显示整型值,但在后台逻辑中需要转换为具体的业务对象,可以利用自定义的 Convert 组件来实现这种转换。通过这种方式,可以避免在展现逻辑中添加额外的处理逻辑,同时保持前后端...
JSTL可以简化JSP页面中的逻辑,使页面更专注于视图层,实现MVC(Model-View-Controller)设计模式。 【个人空间系统】 个人空间系统是该博客管理系统的核心组成部分,它为每个用户提供了一个私有的在线空间,用户...
它以其简单、跨平台的特性,在短短几年内迅速成为许多动态Web应用编程语言中的首选,并广泛应用于电子商务等领域。在中国,JSP也得到了更广泛的关注,发展良好,越来越多的动态网站开始采用JSP技术。 JSP技术的核心...
**JSP(Java Server Pages)速成教程** ...教程可能涵盖了JSP语法、EL表达式、JSTL的使用、MVC模式的实现以及实战示例等内容,帮助你在短时间内提升JSP技能。对于想要从事网站开发的初学者,这是一份非常实用的资料。
这21天的学习计划旨在帮助毫无编程基础或Java基础薄弱的学员在短时间内建立起坚实的编程基础,从而能够独立进行Java开发工作。下面将详细阐述这个教程中可能涉及的关键知识点和学习路径。 1. **Java基础** - **...
此外,SpringMVC还支持拦截器,但需要开发者自定义实现。 3. **视图层**: - **JSTL**:JavaServer Pages Standard Tag Library,用于增强JSP页面的功能,提供了许多内置标签,被认为是最快的JSP标签库之一。 - *...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
3. **异常处理**:书中会详细介绍Java的异常处理机制,包括try-catch-finally语句块、自定义异常以及如何有效地处理程序运行时可能出现的问题。 4. **数组与集合**:数组是存储和操作数据的基础,Java集合框架(如...
- 技术点:Java Web开发工具的安装与使用、Servlet技术、JSP技术、JavaBean、表达式语言(EL)、标准标签库(JSTL)、自定义标签、创建Servlet监听和过滤程序等。 - **阶段项目**: - 技术点:采用MVC分层模型,包括...