📄 test_jsp.java
字号:
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
public final class test_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
private static java.util.List _jspx_dependants;
public Object getDependants() {
return _jspx_dependants;
}
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws java.io.IOException, ServletException {
JspFactory _jspxFactory = null;
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
try {
_jspxFactory = JspFactory.getDefaultFactory();
response.setContentType("text/html;charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
out.write("\n");
out.write("\n");
out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"\n");
out.write(" \"http://www.w3.org/TR/html4/loose.dtd\">\n");
out.write("\n");
out.write("<html>\n");
out.write(" <head>\n");
out.write(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
out.write("<title>如何实现一个日期下拉菜单</title>\n");
out.write("<script type=\"text/javascript\">\n");
out.write("function DateSelector(selYear, selMonth, selDay)\n");
out.write("{\n");
out.write(" this.selYear = selYear;\n");
out.write(" this.selMonth = selMonth;\n");
out.write(" this.selDay = selDay;\n");
out.write(" this.selYear.Group = this;\n");
out.write(" this.selMonth.Group = this;\n");
out.write(" // 给年份、月份下拉菜单添加处理onchange事件的函数\n");
out.write(" if(window.document.all != null) // IE\n");
out.write(" {\n");
out.write(" this.selYear.attachEvent(\"onchange\", DateSelector.Onchange);\n");
out.write(" this.selMonth.attachEvent(\"onchange\", DateSelector.Onchange);\n");
out.write(" }\n");
out.write(" else // Firefox\n");
out.write(" {\n");
out.write(" this.selYear.addEventListener(\"change\", DateSelector.Onchange, false);\n");
out.write(" this.selMonth.addEventListener(\"change\", DateSelector.Onchange, false);\n");
out.write(" }\n");
out.write("\n");
out.write(" if(arguments.length == 4) // 如果传入参数个数为4,最后一个参数必须为Date对象\n");
out.write(" this.InitSelector(arguments[3].getFullYear(), arguments[3].getMonth() + 1, arguments[3].getDate());\n");
out.write(" else if(arguments.length == 6) // 如果传入参数个数为6,最后三个参数必须为初始的年月日数值\n");
out.write(" this.InitSelector(arguments[3], arguments[4], arguments[5]);\n");
out.write(" else // 默认使用当前日期\n");
out.write(" {\n");
out.write(" var dt = new Date();\n");
out.write(" this.InitSelector(dt.getFullYear(), dt.getMonth() + 1, dt.getDate());\n");
out.write(" }\n");
out.write("}\n");
out.write("\n");
out.write("// 增加一个最大年份的属性\n");
out.write("DateSelector.prototype.MinYear = 1900;\n");
out.write("\n");
out.write("// 增加一个最大年份的属性\n");
out.write("DateSelector.prototype.MaxYear = (new Date()).getFullYear();\n");
out.write("\n");
out.write("// 初始化年份\n");
out.write("DateSelector.prototype.InitYearSelect = function()\n");
out.write("{\n");
out.write(" // 循环添加OPION元素到年份select对象中\n");
out.write(" for(var i = this.MaxYear; i >= this.MinYear; i--)\n");
out.write(" {\n");
out.write(" // 新建一个OPTION对象\n");
out.write(" var op = window.document.createElement(\"OPTION\");\n");
out.write(" \n");
out.write(" // 设置OPTION对象的值\n");
out.write(" op.value = i;\n");
out.write(" \n");
out.write(" // 设置OPTION对象的内容\n");
out.write(" op.innerHTML = i;\n");
out.write(" \n");
out.write(" // 添加到年份select对象\n");
out.write(" this.selYear.appendChild(op);\n");
out.write(" }\n");
out.write("}\n");
out.write("\n");
out.write("// 初始化月份\n");
out.write("DateSelector.prototype.InitMonthSelect = function()\n");
out.write("{\n");
out.write(" // 循环添加OPION元素到月份select对象中\n");
out.write(" for(var i = 1; i < 13; i++)\n");
out.write(" {\n");
out.write(" // 新建一个OPTION对象\n");
out.write(" var op = window.document.createElement(\"OPTION\");\n");
out.write(" \n");
out.write(" // 设置OPTION对象的值\n");
out.write(" op.value = i;\n");
out.write(" \n");
out.write(" // 设置OPTION对象的内容\n");
out.write(" op.innerHTML = i;\n");
out.write(" \n");
out.write(" // 添加到月份select对象\n");
out.write(" this.selMonth.appendChild(op);\n");
out.write(" }\n");
out.write("}\n");
out.write("\n");
out.write("// 根据年份与月份获取当月的天数\n");
out.write("DateSelector.DaysInMonth = function(year, month)\n");
out.write("{\n");
out.write(" var date = new Date(year, month, 0);\n");
out.write(" return date.getDate();\n");
out.write("}\n");
out.write("\n");
out.write("// 初始化天数\n");
out.write("DateSelector.prototype.InitDaySelect = function()\n");
out.write("{\n");
out.write(" // 使用parseInt函数获取当前的年份和月份\n");
out.write(" var year = parseInt(this.selYear.value);\n");
out.write(" var month = parseInt(this.selMonth.value);\n");
out.write(" \n");
out.write(" // 获取当月的天数\n");
out.write(" var daysInMonth = DateSelector.DaysInMonth(year, month);\n");
out.write(" \n");
out.write(" // 清空原有的选项\n");
out.write(" this.selDay.options.length = 0;\n");
out.write(" // 循环添加OPION元素到天数select对象中\n");
out.write(" for(var i = 1; i <= daysInMonth ; i++)\n");
out.write(" {\n");
out.write(" // 新建一个OPTION对象\n");
out.write(" var op = window.document.createElement(\"OPTION\");\n");
out.write(" \n");
out.write(" // 设置OPTION对象的值\n");
out.write(" op.value = i;\n");
out.write(" \n");
out.write(" // 设置OPTION对象的内容\n");
out.write(" op.innerHTML = i;\n");
out.write(" \n");
out.write(" // 添加到天数select对象\n");
out.write(" this.selDay.appendChild(op);\n");
out.write(" }\n");
out.write("}\n");
out.write("\n");
out.write("// 处理年份和月份onchange事件的方法,它获取事件来源对象(即selYear或selMonth)\n");
out.write("// 并调用它的Group对象(即DateSelector实例,请见构造函数)提供的InitDaySelect方法重新初始化天数\n");
out.write("// 参数e为event对象\n");
out.write("DateSelector.Onchange = function(e)\n");
out.write("{\n");
out.write(" var selector = window.document.all != null ? e.srcElement : e.target;\n");
out.write(" selector.Group.InitDaySelect();\n");
out.write("}\n");
out.write("\n");
out.write("// 根据参数初始化下拉菜单选项\n");
out.write("DateSelector.prototype.InitSelector = function(year, month, day)\n");
out.write("{\n");
out.write(" // 由于外部是可以调用这个方法,因此我们在这里也要将selYear和selMonth的选项清空掉\n");
out.write(" // 另外因为InitDaySelect方法已经有清空天数下拉菜单,因此这里就不用重复工作了\n");
out.write(" this.selYear.options.length = 0;\n");
out.write(" this.selMonth.options.length = 0;\n");
out.write(" \n");
out.write(" // 初始化年、月\n");
out.write(" this.InitYearSelect();\n");
out.write(" this.InitMonthSelect();\n");
out.write(" \n");
out.write(" // 设置年、月初始值\n");
out.write(" this.selYear.selectedIndex = this.MaxYear - year;\n");
out.write(" this.selMonth.selectedIndex = month - 1;\n");
out.write(" \n");
out.write(" // 初始化天数\n");
out.write(" this.InitDaySelect();\n");
out.write(" \n");
out.write(" // 设置天数初始值\n");
out.write(" this.selDay.selectedIndex = day - 1;\n");
out.write("}\n");
out.write("</script>\n");
out.write("</head>\n");
out.write("<body>\n");
out.write("<select id=\"selYear\"></select>\n");
out.write("<select id=\"selMonth\"></select>\n");
out.write("<select id=\"selDay\"></select>\n");
out.write("<script type=\"text/javascript\">\n");
out.write("var selYear = window.document.getElementById(\"selYear\");\n");
out.write("var selMonth = window.document.getElementById(\"selMonth\");\n");
out.write("var selDay = window.document.getElementById(\"selDay\");\n");
out.write("\n");
out.write("// 新建一个DateSelector类的实例,将三个select对象传进去\n");
out.write("new DateSelector(selYear, selMonth ,selDay, 2004, 2, 29);\n");
out.write("// 也可以试试下边的代码\n");
out.write("// var dt = new Date(2004, 1, 29);\n");
out.write("// new DateSelector(selYear, selMonth ,selDay, dt);\n");
out.write("</script>\n");
out.write("</body>\n");
out.write("</html>");
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
out.clearBuffer();
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -