Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1052|回复: 0

带笼罩网页对话框自定义标签

[复制链接]

该用户从未签到

发表于 2011-9-25 12:47:00 | 显示全部楼层 |阅读模式
import java.io.*;
import javax.Servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

/** 带遮罩的网页对话框自定义标签类 */
public class MsgDialogTag extends SimpleTagSupport {

String title = "温馨提示"; //对话框标题文字
String height="100%"; //遮罩的高度,默认为屏幕的高度,即100%
String top="100px";  //对话框的顶部距离,默认为100px
String boxwidth="500px";//对话框的宽度,默认为500px
String basepath ="";  //基本URL
String tmpid = null; //临时ID后缀,避免ID冲突,默认为系统时间的毫秒数

/** 标签体处理 */
    public void doTag() throws JspException, IOException{
     //规范属性值
     if (!height.endsWith("%"))height=height+"px";
     if (!top.endsWith("px"))top=top+"px";
     if (!boxwidth.endsWith("px"))boxwidth=boxwidth+"px";
     int titlewidth = Integer.valueOf(boxwidth.replaceAll("px", "")).intValue()-42;
     if (tmpid==null)tmpid = String.valueOf(System.currentTimeMillis());//临时ID后缀,避免ID冲突

     //取得现有标签体的内容
     JspFragment body = this.getJspBody();
     StringWriter writer = new StringWriter();
     StringBuffer buff = writer.getBuffer();
     body.invoke(writer);

     //构造带遮罩的网页对话框
     StringBuffer sb = new StringBuffer();
     sb.append("<style>\n");
     sb.append("#msgbox"+tmpid+"{width:"+boxwidth+";background: #D6D3CE; border:1px #848284 solid;padding:0px;margin:0 auto;}\n");
     sb.append(".msgicon{float:left;background-image:url("+basepath+"/images/msgtitle_icon.jpg); background-repeat:no-repeat; height:20px;width:20px;}\n");
     sb.append(".msgtilte{float:left; text-align:left;background-image:url("+basepath+"/images/msgtitle_back.jpg); background-repeat:repeat-x;line-height:20px;letter-spacing:2px; height:20px; width:"+titlewidth+"px;}\n");
     sb.append(".msgclose{float:left;background-image:url("+basepath+"/images/btn_close.jpg); background-repeat:no-repeat; height:20px; width:20px; cursor:pointer;}\n");
     sb.append(".msgmainbox{clear:both; border-top:1px #848284 solid;text-align:left;padding:20px;overflow: auto;}\n");
     sb.append("</style>\n");
     sb.append("<div id='mask"+tmpid+"' style='clear:both;top:0;left:0;position:absolute;z-index:999;filter:alpha(opacity=70);background:#000;opacity: 0.7;-moz-opacity: 0.7;height:"+height+";width:100%;'></div>\n");
     sb.append("<div id='msgprompt"+tmpid+"' style='clear:both;top:"+top+";left:0;position: absolute; z-index: 1000; width:100%;text-align:center'>\n");
     sb.append("<div id='msgbox"+tmpid+"'>\n");
     sb.append("<div class='msgicon'></div>\n");
     sb.append("<div class='msgtilte'>"+title+"</div>\n");
     sb.append("<div class='msgclose' onClick='closemask"+tmpid+"()'></div>\n");
     sb.append("<div class='msgmainbox'>\n");
     //插入标签体中的提示信息内容
     sb.append(writer.toString().trim()+"\n");
     sb.append("</div>\n");
     sb.append("</div>\n");
     sb.append("</div>\n");
     sb.append("<script language='javascript'>\n");
     sb.append("function closemask"+tmpid+"(){\n");
     sb.append("document.getElementById('mask"+tmpid+"').style.display='none';\n");     
     sb.append("document.getElementById('msgprompt"+tmpid+"').style.display='none';\n");
     sb.append("}\n");
     sb.append("</script>\n");
     sb.append("</div>\n");
     //输出处理结果到页面上
     getJspContext().getOut().println(sb);     
    }

public String getTitle() {
  return title;
}
public void setTitle(String title) {
  this.title = title;
}
public String getBasepath() {
  return basepath;
}
public void setBasepath(String basepath) {
  this.basepath = basepath;
}

public String getHeight() {
  return height;
}

public void setHeight(String height) {
  this.height = height;
}

public String getTop() {
  return top;
}

public void setTop(String top) {
  this.top = top;
}

public String getBoxwidth() {
  return boxwidth;
}

public void setBoxwidth(String boxwidth) {
  this.boxwidth = boxwidth;
}

public String getTmpid() {
  return tmpid;
}

public void setTmpid(String tmpid) {
  this.tmpid = tmpid;
}
}
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2011-11-2 11:14:10 | 显示全部楼层
    谢谢楼主分享啊!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-3 09:33 , Processed in 0.409192 second(s), 47 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表