web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
...
<!-- zip resources -->
<filter>
<filter-name>GZIPFilter</filter-name>
<filter-class>com.tacitknowledge.filters.gzipfilter.GZIPFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>GZIPFilter</filter-name>
<url-pattern>*.css</url-pattern>
</filter-mapping>
<!-- self defi tag -->
<jsp-config>
<taglib>
<taglib-uri>http://www.xxx.com.cn/project/functions</taglib-uri>
<taglib-location>/WEB-INF/tld/xxx-html.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>500</error-code>
<location>/pages/error.jsp</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/pages/error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/pages/error.jsp</location>
</error-page>
...
</web-app>
在WEB-INF下面新建tld目录
新增
xxx-html.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/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
>
<tlib-version>1.0</tlib-version>
<short-name>wapHtml</short-name>
<uri>http://www.xxx.com.cn/project/functions</uri>
<function>
<name>
replaceSpecialChar
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String replaceSpecialChar(java.lang.String,java.lang.String,java.lang.String)</function-signature>
</function>
<function>
<name>
splitChar
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String[] splitChar(java.lang.String,java.lang.String)</function-signature>
</function>
<function>
<name>
cutStr
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String cutStr(java.lang.String,java.lang.Integer)</function-signature>
</function>
<function>
<name>
cutStrExt
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String cutStrExt(java.lang.String,java.lang.Integer,java.lang.Integer,java.lang.String)</function-signature>
</function>
<function>
<name>
convertNumber
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String convertNumber(java.lang.String)</function-signature>
</function>
<function>
<name>
dateToStr
</name>
<function-class>com.paic.mall.util.tag.WapHtmlTag</function-class>
<function-signature>java.lang.String dateToStr(java.util.Date,java.lang.String)</function-signature>
</function>
</taglib>
WapHtmlTag.java
public class WapHtmlTag {
/**
* 把sourceStr含有repChar的字符替换为destChar
* @param sourceStr
* @param oldChar
* @param newChar
* @return
*/
public static String replaceSpecialChar(String sourceStr, String oldChar, String newChar){
if(StringUtils.isEmpty(sourceStr)){
return "";
}
sourceStr = sourceStr.toLowerCase();
sourceStr = sourceStr.replace(oldChar, newChar);
return sourceStr;
}
/**
* 分割字符串,至少保持数组长度有两位
* @param sourceStr
* @param split
* @return
*/
public static String[] splitChar(String sourceStr, String split){
if(StringUtils.isEmpty(sourceStr)){
return new String[2];
}
String[] array = sourceStr.split(split);
if(null != array && array.length > 0){
if(array.length == 1){
String[] ay = new String[2];
ay[0] = array[0];
return ay;
}
return array;
}
return new String[2];
}
/**
* 截取字符串,如果不超过length,则返回原来字符串
* @param sourceStr
* @param length
* @return
*/
public static String cutStr(String sourceStr, Integer length){
if(StringUtils.isEmpty(sourceStr)){
return "";
}
int sourceLength = sourceStr.length();
if(sourceLength > length){
sourceStr = sourceStr.substring(0, length) + "...";
}
return sourceStr;
}
/**
* 截取字符串,如果不超过length,则返回原来字符串
* @param sourceStr 原串
* @param startIndex 开始位置
* @param endIndex 结束位置
* @param subffix 后缀
* @return
*/
public static String cutStrExt(String sourceStr, Integer startIndex, Integer endIndex, String subffix){
if(StringUtils.isEmpty(sourceStr)){
return "";
}
int sourceLength = sourceStr.length();
if(sourceLength <= startIndex){
return sourceStr;
}
int end = sourceLength - startIndex;
if(end > endIndex){
sourceStr = sourceStr.substring(startIndex, endIndex) + subffix;
}else{
sourceStr = sourceStr.substring(startIndex, sourceLength) + subffix;
}
return sourceStr;
}
/**
* 数字转换
* @param number 数字
* @return
*/
public static String convertNumber(String numberStr){
if(StringUtils.isEmpty(numberStr)){
return "";
}
if(!StringUtils.isNumeric(numberStr)){
return "";
}
double number = Double.parseDouble(numberStr);
String str = "";
DecimalFormat df = new DecimalFormat("######0.00");
if(number >= 10000){
str = String.valueOf(df.format(Double.valueOf(number)/10000));//转化为万,保存两位小数
String strLeft = str.substring(0, str.indexOf("."));//小数点左边
String strRight = str.substring(str.indexOf(".")+1, str.length());//小数点右边
int minERight = Integer.parseInt(strRight);
if(minERight <= 0){//判断右边小于0,则去掉右边的两位小数
str = strLeft;
}
return str;
}else{
return numberStr;
}
}
/**
* 把时间类型转化为String类型
* @param date
* @return
*/
public static String dateToStr(Date date,String partn){
if(null == date){
return "";
}
SimpleDateFormat sdf=new SimpleDateFormat(partn);
String str=sdf.format(date);
return str;
}
}
使用方法
xxx.jsp
<strong style="font-style: italic;"><</strong>%@ taglib prefix="waptag" uri="http://www.pingan.com.cn/jrqjd/functions" %>
<c:if test="${not empty lujinsuoList}">
<div class="content-block-title">陆金所理财产品(<i>${fn:length(lujinsuoList)}</i>)</div>
<div class="list-block">
<ul>
<c:forEach items="${lujinsuoList}" var="record" varStatus="item">
<li class="swipeout">
<label class="swipeout-content item-content label-checkbox">
<input type="checkbox" name="shop-cart-checkbox" class="shop-cart-checkbox" value="${record.idWapShoppingCart }">
<div class="item-media"><i class="icon icon-form-checkbox"></i></div>
<div class="ub-f1 ubox-v product-info">
<a class="link title-name" href="${waptag:splitChar(record.productUrl, 'mamc/')[1] }">${record.productName }</a>
<div class="title-number">${record.productCode }</div>
<div class="ubox title-value">
<span class="ub-f1">${waptag:replaceSpecialChar(record.productUniqueFeature, '%','<i>%</i>')}</span>
<span class="ub-f1">${waptag:splitChar(record.productIntroduce, '万')[0]}<i>万</i></span>
<span class="ub-f1">${waptag:splitChar(record.productIntroduce, '万')[1]}</span>
</div>
<div class="ubox">
<div class="ub-f1">预期收益</div>
<div class="ub-f1">起购价</div>
<div class="ub-f1">起购期限</div>
</div>
</div>
<div class="ubox-v buy-info">
<a href="${ctx}/lujinsuo/yuyue/tianxie.do?${sessionScope.wapChaoshiUrlParams }&pid=${record.productId }" class="external ub-f1 ubox text-1 ub-ac">预约</a>
</div>
</label>
<div class="swipeout-actions-right">
<a href="#" class="swipeout-delete bg-red">删除</a>
</div>
</li>
</c:forEach>
</ul>
</div>
</c:if>