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

📄 creditcardconverter.java

📁 struts框架的jsf组件的核心实用例子集合
💻 JAVA
字号:
package com.corejsf;import javax.faces.application.FacesMessage;import javax.faces.component.UIComponent;import javax.faces.context.FacesContext;import javax.faces.convert.Converter;import javax.faces.convert.ConverterException;public class CreditCardConverter implements Converter {   public Object getAsObject(FacesContext context, UIComponent component,         String newValue) throws ConverterException {      StringBuffer buffer = new StringBuffer(newValue);      boolean foundInvalidCharacter = false;      char invalidCharacter = '\0';      int i = 0;      while (i < buffer.length() && !foundInvalidCharacter) {         char ch = buffer.charAt(i);         if (Character.isDigit(ch))            i++;         else if (Character.isWhitespace(ch))            buffer.deleteCharAt(i);         else {            foundInvalidCharacter = true;            invalidCharacter = ch;         }      }      if (foundInvalidCharacter) {         FacesMessage message = com.corejsf.util.Messages.getMessage(               "com.corejsf.messages", "badCreditCardCharacter",               new Object[]{ new Character(invalidCharacter) });         message.setSeverity(FacesMessage.SEVERITY_ERROR);         throw new ConverterException(message);      }      return new CreditCard(buffer.toString());   }   public String getAsString(FacesContext context, UIComponent component,         Object value) throws ConverterException {      // length 13: xxxx xxx xxx xxx      // length 14: xxxxx xxxx xxxxx      // length 15: xxxx xxxxxx xxxxx      // length 16: xxxx xxxx xxxx xxxx      // length 22: xxxxxx xxxxxxxx xxxxxxxx      String v = value.toString();      int[] boundaries = null;      int length = v.length();      if (length == 13)         boundaries = new int[]{ 4, 7, 10 };      else if (length == 14)         boundaries = new int[]{ 5, 9 };      else if (length == 15)         boundaries = new int[]{ 4, 10 };      else if (length == 16)         boundaries = new int[]{ 4, 8, 12 };      else if (length == 22)         boundaries = new int[]{ 6, 14 };      else         return v;      StringBuffer result = new StringBuffer();      int start = 0;      for (int i = 0; i < boundaries.length; i++) {         int end = boundaries[i];         result.append(v.substring(start, end));         result.append(" ");         start = end;      }      result.append(v.substring(start));      return result.toString();   }}

⌨️ 快捷键说明

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