|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。创立|日历有的伴侣已经说过,假如有一个网上的日志本,大概一个网上的万年历能提示本人到时往干甚么事变就行了。实在呀,如许的日历本您本人也能做一个。不信你看上面的例子:
〈HTML〉
〈HEAD〉
〈TITLE〉万年历记事本〈/TITLE〉
〈/HEAD〉
〈BODYBGCOLOR="white"〉
//设置页面剧本言语是java,导进HtmlCalendarNotePad类,HtmlCalendarNotePad在前面将会讲到
〈%@pagelanguage="java"import="HtmlCalendarNotePad"%〉
//界说一个JavaBean,取其id为HtmlCal
〈jsp:useBeanid="HtmlCal"scope="session"class="HtmlCalendarNotePad"/〉
〈%
//设置参数,取所需的月份为3月,由于未设定年份,故默许为今年。
HtmlCal.setMonth(3);
//设置举措,3月24日时,往天极网,在新窗口翻开(也能够以其他的体例翻开)
HtmlCal.setAction(24,"http://www.yesky.com/","_blank");
%〉
〈TABLEWIDTH=300〉
〈TR〉〈TDNOWRAP〉
〈%=HtmlCal.getHtml()%〉//以表格的情势输入一个月的月历
〈/TD〉〈/TR〉
〈/TABLE〉
〈/BODY〉
〈/HTML〉
你将看到以下输入了局
MonTueWedThuFriSatSun
123
45678910
11121314151617
18192021222324
25262728293031
这不就跟日历本上一样了吗,不外它比日历本幸亏,有预设好的链接能够提示您到时往某个站点,或实行某个javascript函数,如许不又起了一个记事本的感化了吗?固然了,你也能够本人增加一些功效,使它变得加倍壮大,好比增加一个表单,可让用户填写日志发送到您的体系的数据库中等等。为了完成这个目标,先让我们来看一看JavaBean程序是怎样誊写的。
JavaBean程序剖析
我想把HtmlCalendarNotePad中的次要办法先容一些,信任会人人有所匡助
publicvoidsetYear(intyear)//设置年份。默许值为以后的年份
publicintgetYear()//取得年份。默许值为以后的年份
//这是尺度Java程序写法,由于Java程序就是一个类以是常常写这类setXXX/getXXX
publicvoidsetMonth(intmonth)//设置月份(1-12),默许值为以后的月
publicintgetMonth()//取得月份(1-12),默许值为以后的月
publicvoidsetStyle(intstyle)
publicintgetStyle()
//设置/取得日历的款式(style)
//是以礼拜天为一礼拜的第一天HtmlCalendarNotePad.SUNDAY_FIRST仍是以礼拜一为一礼拜的第一天HtmlCalendarNotePad.MONDAY_FIRST
//默许值为HtmlCalendarNotePad.SUNDAY_FIRST
publicvoidsetLocale(Localeloc)//设置区域代码(Locale),默许值为Locale.PRC
publicLocalegetLocale()//取得区域代码(Locale),默许值为Locale.PRC
publicvoidsetAction(intday,StringactionUrl,Stringtarget_frame)
//设置超链接,来处置哀求。假如出了任何毛病的话,该办法会前往一个空的字符串。
//你能够设置一个一般的URL,如“http://www.yesky.com/action.jsp”
//大概一个一个javascript函数名,如“myFunction”
//日期将被作为一个参数传给URL,大概作为一个字符串值传给javascript.格局是yyyymmdd.
//target_frame能够为空的字符串。
如:
假如挪用setAction(21,"http://www.yesky.com/","_blank")
超链接为:〈ahref="http://www.yesky.com/?date=20000621"target=_blank〉21〈/a〉
publicvoidsetActions(StringactionUrl,Stringtarget_frame)
//你也能够为一个月的每天设置超链接
如今让我和人人一同来分享那颗诱人的豆子(Bean)吧:(HtmlCalendarNotePad.java)。
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.*;
publicclassHtmlCalendarNotePad
{
publicstaticfinalintMONDAY_FIRST=1;//设置每礼拜是以礼拜一为第一天
publicstaticfinalintSUNDAY_FIRST=2;//设置每礼拜是以日曜日为第一天
privateHashtableconfig;
privatestaticfinalStringMnth[]={
"一月","仲春","三月","四月","蒲月","六月",
"七月","八月","玄月","十月","十一月","十仲春"
};
privateintyear;
privateintmonth;
privateintstyle;
privateStringsFont;
privateLocaleloc;
privatestaticStringNEWLINE="
";
publicHtmlCalendarNotePad()//机关函数
{
sFont=null;
GregorianCalendargCalendar=newGregorianCalendar();//获得以后的日历(格里高里历)
config=newHashtable();//创立新的哈希表贮存设置信息
NEWLINE=System.getProperty("line.separator");
style=2;//设置每礼拜是以日曜日为第一天
month=gCalendar.get(2);//获得月份
year=gCalendar.get(1);//取的年份
loc=Locale.PRC;//设置国度名,默许为中华国民共和国
}
privateStringformatObject(Strings,Objectobj)
{
Strings1="";
if(obj!=null)
s1=String.valueOf(String.valueOf(obj));
if(s==null)
returns1;
else
returns+s1+"〈/font〉";
}
privateintgetDay(Calendarcalendar)//获得某日在日历中的地位
{
if(style==2)
returncalendar.get(7)-1;
else
return(calendar.get(7)+5)%7;
}
publicStringgetHtml()
{
GregorianCalendargCalendar=newGregorianCalendar(year,month-1,1);
GregorianCalendargCalendar1=newGregorianCalendar(2001,3,24);
SimpleDateFormatsimpledateformat=newSimpleDateFormat("EEE",loc);
//设置缩写格局,EEE是礼拜的缩写,如Sun,若EEEE则为Sunday。
inti=month-1;
intj=0;
StringBufferstringbuffer=newStringBuffer("");//创立新的字符串缓冲区
stringbuffer.append("〈table〉〈tr〉
");//在stringbuffer上增加〈table〉〈tr〉,为创立表格作筹办
if(style==2)//见上注释
{
stringbuffer.append("〈thalign=right〉"+formatObject(sFont,simpledateformat.format(gCalendar1.getTime()))+"〈/th〉
");
gCalendar1.add(5,1);
for(intk=1;k〈7;k++)
{
stringbuffer.append("〈thalign=right〉"+formatObject(sFont,simpledateformat.format(gCalendar1.getTime()))+"〈/th〉
");
gCalendar1.add(5,1);
}
}
else
{
gCalendar1.add(5,1);
stringbuffer.append("〈thalign=right〉"+formatObject(sFont,simpledateformat.format(gCalendar1.getTime()))+"〈/th〉
");
for(intl=2;l〈8;l++)
{
gCalendar1.add(5,1);
stringbuffer.append("〈thalign=right〉"+formatObject(sFont,simpledateformat.format(gCalendar1.getTime()))+"〈/th〉
");
}
}
stringbuffer.append("〈/tr〉
");
inti1=0;
j=0;
if(getDay(gCalendar)〉0)
{
stringbuffer.append("〈tr〉");
for(;i1〈getDay(gCalendar);i1++)
{
stringbuffer.append("〈tdalign=right〉");
if(sFont!=null)
stringbuffer.append(sFont+"〈/font〉");
else
stringbuffer.append("");
stringbuffer.append("〈/td〉
");
j++;
}
}
for(;gCalendar.get(2)==i;gCalendar.add(5,1))
{
intj1=gCalendar.get(5);
intk1=(i1+j1)%7;
if(k1==1)
{
stringbuffer.append("〈tr〉"+NEWLINE);
j=0;
}
stringbuffer.append("〈tdalign=right〉");
j++;
if(sFont!=null)
stringbuffer.append(sFont);
Strings;
if((s=(String)config.get(String.valueOf(j1)))!=null)
{
stringbuffer.append("〈ahref="");
if(s.toUpperCase().startsWith("HTT")||s.indexOf(".")〉0)
{
stringbuffer.append(s);
if(s.indexOf("?")〈0)
stringbuffer.append("?date="+stringDate(gCalendar));
else
stringbuffer.append("&date="+stringDate(gCalendar));
}
else
{
stringbuffer.append("javascript:"+s+"("+stringDate(gCalendar)+");");
}
stringbuffer.append(""");
if((s=(String)config.get(j1+"target"))!=null)
stringbuffer.append("target=""+s+""");
stringbuffer.append("〉");
stringbuffer.append(gCalendar.get(5));
stringbuffer.append("〈/a〉
");
}
else
{
stringbuffer.append(String.valueOf(j1));
}
if(sFont!=null)
stringbuffer.append("〈/font〉");
stringbuffer.append("〈/td〉
");
if(k1==0)
stringbuffer.append("〈/tr〉
");
}
if(j〈7)
{
for(;j〈7;j++)
{
stringbuffer.append("〈tdalign=right〉");
if(sFont!=null)
stringbuffer.append(sFont);
stringbuffer.append("");
if(sFont!=null)
stringbuffer.append("〈/font〉");
stringbuffer.append("〈/td〉
");
}
stringbuffer.append("〈/tr〉
");
}
stringbuffer.append("〈/table〉
");
returnstringbuffer.toString();
}
publicLocalegetLocale()//猎取区域名
{
returnloc;
}
publicintgetYear()//获得年份
{
returnhtmlCalendarYear;
}
publicintgetMonth()//获得月分
{
returnhtmlCalendarMonth;
}
publicintgetStyle()//获得日历的款式
{
returnhtmlCalendarStyle;
}
//设置举措的URI,target_frame的值能够为_blank、_parent、_top、_self。
publicvoidsetAction(intday,StringactionUri,Stringtarget_frame)
{
if(actionUri!=null)
{
config.put(String.valueOf(day),actionUri);
if(target_frame!=null&&target_frame.length()〉0)
config.put(day+"target",target_frame);
}
}
//设置一个月的一切天的超链接
publicvoidsetActions(StringactionUri,Stringtarget_frame)
{
for(intday=1;day〈=31;day++)
setAction(day,actionUri,target_frame);
}
//设置区域
publicvoidsetLocale(Localelocale)
{
loc=locale;
}
//设置年份
publicvoidsetYear(inthtmlCalendarYear)
{
if(htmlCalendarYear〉0)
{
year=htmlCalendarYear;
config.clear();
}
}
//设置月份
publicvoidsetMonth(inthtmlCalendarMonth)
{
if(htmlCalendarMonth〉=1&&htmlCalendarMonth〈=12)
{
month=htmlCalendarMonth;
config.clear();
}
}
//设置日历的款式
publicvoidsetStyle(inthtmlCalendarStyle)
{
style=htmlCalendarStyle;
}
privateStringstringDate(Calendarcalendar)
{
StringstrDay=String.valueOf(calendar.get(1));
returnstrDay+twoDigits(calendar.get(2)+1)+twoDigits(calendar.get(5));
}
privateStringtwoDigits(intday)//为了日历中数字可以对齐,以是1-9前将加0
{
StringstringDay=String.valueOf(day);//获得day的值
if(stringDay.length()==1)//假如字符串长度为1
return"0"+stringDay;//则在字符串前加零
else
returnstringDay;
}
}
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。 |
|