我正在构建一个动态逻辑,根据我从数据库中获取的格式来格式化电话号码。
我正在开发一个基于 struts 1.3 的 Web 应用程序。我在其中使用自定义创建的标签来格式化电话号码。
我的数据库正在动态返回一个未格式化的数字,如 (8324734741) 和一个格式 (###-### ####)。我想要实现的是 jsp 将有两个输入字段,一个输入字段用于显示数据并使用 javascript 进行映射,并且其名称未使用 javabean(不同名称)进行映射。其他输入字段将是一个隐藏的输入字段,用于使用formbean 名称将值存储和检索到数据库。使用以下内容,我只能根据掩码设置输入字段的格式,直到我单击它为止。它在加载 jsp 页面时没有格式化。当我单击保存数据时,它不会保存数据,因为 displayInputField 未映射到 javabean。到现在为止我已经做到了。以任何方式提供任何解决方案来实现这一目标。
public class Format extends BaseFieldTag {
private String size;
private String maxlength;
private String type = "text";
private String value = "";
private String property = null;
private String label = null;
private String formatconfigcode = null;
private String formbeanname = null;
private boolean brtag;
private boolean hiddenfield;
//this part contains getter and setters
public int doStartTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
DbUserSession sessionUser = SessionHelpers.getUserSession(request);
FormatDAO fdao = new FormatDAO();
String format = fdao.getFormat(this.getFormatconfigcode(), sessionUser); //(###) ###-####
Object bean = pageContext.findAttribute(getFormbeanname());
try {
value = BeanUtils.getProperty(bean, getProperty()); //8192727827
} catch (Exception e) {
e.printStackTrace();
}
try {
JspWriter out = pageContext.getOut();
StringBuffer sb = new StringBuffer();
sb.append("<label class='control' style='width: 50%;'>");
sb.append("<span class='control-label'>" + getName() + ":</span>");
sb.append("<input type='hidden' name='").append(getProperty()).append("' ");
sb.append("value='").append(value).append("'/>");
sb.append("<input ");
sb.append("size='").append(getSize()).append("' ");
sb.append("maxlength='").append(getMaxlength()).append("' ");
sb.append("id='").append(getId()).append("' ");
sb.append("class='control-field' ");
sb.append("type='").append(getType()).append("' ");
sb.append("value='").append(value).append("'");
sb.append("/>");
if (getType().equals("text") && format != null) {
sb.append("</label>");
sb.append("<script type='text/javascript'>");
String idMask = getId() + "_mask";
sb.append("var ").append(idMask).append(" = new Mask('").append(format).append("'); ");
sb.append(idMask).append(".attach(document.getElementById('").append(getId()).append("'));");
sb.append("</script>");
} else {
sb.append("/>");
sb.append("</label>");
}
out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
return SKIP_BODY;
}