⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taglibhelper.java

📁 一个实用工具类
💻 JAVA
字号:
/* * Copyright (C) butor.com. All rights reserved. * * This software is published under the terms of the GNU Library General * Public License (GNU LGPL), a copy of which has been included with this * distribution in the LICENSE.txt file.  */package org.butor.web.taglib.html;import java.text.DecimalFormat;import java.text.NumberFormat;import java.text.ParseException;import java.util.Date;import java.util.StringTokenizer;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import org.apache.struts.util.ResponseUtils;import org.butor.helper.DateManip;import org.butor.log.Log;/** * @author nacroaz * * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. */public class TagLibHelper {	public static final String DATA_TYPE_NUMBER = "number";	public static final String DATA_TYPE_DATE = "date";		public static void renderText(PageContext pageContext, String text, boolean style) throws JspException {   	       	    renderText(pageContext, text, style, false);				}		public static void renderText(PageContext pageContext, String text, boolean style, boolean isMultiLines) throws JspException  {		StringBuffer results = new StringBuffer();		// Style				if (style) {			results.append("<span class=\"static\">");		}		if (isMultiLines) {	   		StringTokenizer st = new StringTokenizer(text, "\n", true);	   		String token = null;	   		while(st.hasMoreTokens()) {	   			token = st.nextToken();	   			if (token != null && token.equals("\n")) {	   				results.append("<BR>");	   			} else {	   				results.append(token);	   			}	   		}		} else {			// Add text        	results.append(text);		}				// Style                if (style) {			results.append("</span>");		        }		        // Print this field to our output writer   	    ResponseUtils.write(pageContext, results.toString());				}	public static void renderHiddenField(PageContext pageContext, String property, String value) throws JspException {				renderText(pageContext, "<input type=\"hidden\" name=\"" + property + "\" value=\"" + value + "\" >", false);	        					}		public static void renderStaticField(PageContext pageContext, String property, String value) throws JspException {				renderStaticField(pageContext, property, value, false);      	}		public static void renderStaticField(PageContext pageContext, String property, String value, String formatedValue) throws JspException {				renderStaticField(pageContext, property, value, formatedValue, false);      	}		public static void renderStaticField(PageContext pageContext, String property, String value, boolean isMultiLines) throws JspException {		renderStaticField(pageContext, property, value, null, isMultiLines);	}	public static void renderStaticField(PageContext pageContext, String property, String value, String formatedValue, boolean isMultiLines) throws JspException {		// Add value    		if (formatedValue != null) {			renderText(pageContext, ResponseUtils.filter(formatedValue), true, isMultiLines);					} else {			renderText(pageContext, ResponseUtils.filter(value), true, isMultiLines);		}	        		// Add an hidden field for this property	            		renderHiddenField(pageContext, property, value);	        	}		public static void renderStaticChecked(PageContext pageContext, String property, String value) throws JspException {		//  Add the checked image	    TagLibHelper.renderText(pageContext, "<img src=\"/_images/checked.gif\">", false);	            	    // Add an hidden field for this property	    TagLibHelper.renderHiddenField(pageContext, property, value);		}			/**	 * Formats value to postal code format	 * ex: H3B4S9 -> H3B 4S9	 * 	 * @param value	 * @return	 */	public static String formatPostalCode(String value) {		if (value == null) {			return null;		}		value = value.trim();				if (value.length() != 6) {			return value;		}				return value.substring(0, 3) + " " + value.substring(3, 6);	}		/**	 * Transforms a value into a phone number formatted like "(999) 123-4567"	 * Parsing is done by extracting digits from the original value	 * and throwing away everything else.	 * 	 * @param value	 * @return	 */	public static String formatPhoneNumber(String value) {		if (value == null) {			return null;		}		// Do nothing if phone number is incomplete		if (value.length() < 7) {			return value;		}				StringBuffer digits = new StringBuffer();		for (int i = 0; i < value.length(); i++) {			char ch = value.charAt(i);			if (Character.isDigit(ch)) {				digits.append(ch);			}		}				switch (digits.length()) {			// Phone number only			case 7: return digits.substring(0, 3) + "-" + digits.substring(3, 7);							// Area code + phone number			case 10: return "(" + digits.substring(0, 3) + ") " + digits.substring(3, 6) + "-" + digits.substring(6, 10);		}				return value;	}	public static String format(Object value, String dataType, String formatPattern) {		if (value == null) {			Log.logStr(Log.LOG_LEVEL_MEDIUM, TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Got NULL value!");			return null;		}				if (dataType == null) {			Log.logStr(Log.LOG_LEVEL_MEDIUM, TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Got NULL data type!");			return value.toString();		}				if (formatPattern == null) {			Log.logStr(Log.LOG_LEVEL_MEDIUM, TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Got NULL format pattern!");			return value.toString();		}				if (dataType.equalsIgnoreCase(DATA_TYPE_NUMBER)) {			NumberFormat nbrFormat = NumberFormat.getNumberInstance();			((DecimalFormat)nbrFormat).applyPattern(formatPattern);						Number nbr = null;			if (value instanceof Number) {				nbr = (Number) value;							} else if (value instanceof String) {								if (((String)value).trim().length() > 0) {					try {						nbr = new Double((String) value);											} catch (NumberFormatException e) {						Log.logStr(TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Can't parse value as double! Got value=[" +value +"]." );						return null;					}				}			}						if (nbr != null) {				return nbrFormat.format(nbr);			}						} else if (dataType.equalsIgnoreCase(DATA_TYPE_DATE)) {						Date date = null;			if (value instanceof Date) {				date = (Date) value;							} else if (value instanceof String) {				try {					date = DateManip.parseDate((String) value);				} catch (ParseException e) {					Log.logStr(TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Can't parse value as date! Got value=[" +value +"].");					return null;				}			}						if (date != null && !date.equals(DateManip.NULL_MIN_DATE) &&					!date.equals(DateManip.NULL_MAX_DATE)) {										return DateManip.formatDate(formatPattern, date);			} else {				return "";			}					} else if (dataType.equalsIgnoreCase(DATA_TYPE_DATE)) {			Log.logStr(TagLibHelper.class, Log.LOG_TYPE_WARN, "format()", "Invalid data type! Got dataType=[" +dataType +"]");		}				return value.toString();	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -