Because I always got up late in last week's morning,I learned nothing in English last week.
Tell myself:learn it persistently.
作者:littlebat
always confused with double-writting the end char of a verb
I always forget the usage of double-writting the end char of verb in several situations.Like below:
1.ResetPsdDater:Check If The Resetting Password Record Existed
2.System:Check The Validity Of New Inputed Password
3.User Had Reseted Password Or Date Expired
4. [Canceled]
5.EmailSender:Sending Email
inputed(inputted?),resetting(reseting?),reseted(resetted?),canceled(cancelled?),sending(sendding?)
1.input:(past participle:)see:http://www.usingenglish.com/glossary/past-participle.html
(NOTE:The Past Participle may also be used as an adjective)['input],so it is like this:
The Validity Of New Inputed Password
2.reset:[re'set]resetting
3.reset:resetted
4.send:end with double consonant,so it is:sending
5.cancel?This is a question be left.see:http://www.yuloo.com/wyks/wy-cet/cet-ksch/2005-02/1107584703.html
51.All flights_____because of the snowstorm,many passengers could do nothing but take the train。 A)had been canceled B)have been canceled C)were canceled D)having been canceled 该题考查独立主格结构。“撤销航班”的英文为cancel flights,故分句中应采用被动式,同时cancel这一动作发生在主句谓语动词could do...的动作之前,由此判定空格中应填入分词的完成被动式,即选项D。
cancelled:adj.[法律]废除的
I can learn some things from below content:
1.动词的现在分词:以重读闭音节结尾的多音节词,而末尾只有一辅音字母时,这个辅音字母须双写,然后再加 ing。
arrive- arriving get- getting
闭音节的单音节词,或以重读闭音节结尾的多音节词,这些词的末尾只有一个辅音字母时,双写这个辅音字母,再加 -ing.
sitting running getting cutting stopping beginning planning permitting
2.一般过去式构成:以一个辅音字母结尾的重读闭音节动词,双写词尾辅音字母,再加 -ed。
stopped begged fretted dragged dropped planned dotted dripped
3.过去分词的构成方法如下 :
闭音节的单音节词,或以重读闭音节结尾的多音节词,这些词的末尾只有一个辅音字母时,双写这个辅音字母,再加 -ed。
stopped regretted dropped
Here is an article come from:(http://www.cnread.net/cnread1/yyxx/yyyf/002.htm)
动 词
--------------------------------------------------------------------------------
动 词 的 定 义:
动词是表示动作或状态的词。 例如: work,工作 , study,学习,eat 吃。
动词的分类:动词有两种分类方法。
1) 限定动词和非限定动词。
限定动词在句中作谓语,有人称和数的变化。非限定动词有动词不定式,动名词和分词三种。在句中不能单独作谓语,没有人称和数的变化。
2)实义动词,连系动词,情态动词和助动词。
实义动词有完整的词义,并能单独作谓语,实义动词又可分为及物动词和不及物动词。例如:
study 学习, reach 到达, see 看见, rise 升起。
连系动词在句中作谓语动词,后面跟表语。连系动词有 be, seem, look, become, get, grow, feel, appear, remain, turn。
情态动词表示能力,义务,必要,猜测等说话人的语气或情态。情态动词只能和动词原形一起构成谓语动词。情态动词有 can, will, have, be, should, do, would, 等。
助动词只能和主要动词一起构成各种时态,语态和语气等动词形式。
do, shall, will, have, has.
动词的基本形式。
英语动词有四种基本形式:动词原形,过去式,过去分词和现在分词。这四种动词形式和助动词一起构成动词的时态,语态和语气。
动词的原形。就是词典中所给的形式。例如:be, have, buy, sit.
动词过去式和过去分词的构成有规则的和不规则的两种形式。规则动词的过去式和过去分词,由在原形动词的后面加词尾 -ed 构成。
work - worked - worked
不规则动词的过去式和过去分词的形式是不规则的,须要一一记忆。
go - went - gone do - did - done
动词的现在分词由动词原形加 -ing 构成。构成方法如下:
1)一般情况在动词原形后加 -ing 。
go---going stand---standing
2)以不发音的 e 结尾的动词,去掉 e ,再加 -ing. 动词是闭音节的单音节词,或是以重读闭音节结尾的多音节词,而末尾只有一辅音字母时,这个辅音字母须双写,然后再加 ing。
arrive- arriving get- getting
3)少数几个以 -ie 结尾的动词,须将 ie 变成 y ,再加 ing.例如: die--dying lie--lying。
动词的时态
英语动词的时态是一种动词的形式。 不同的动词时态用以表示不同的时间和方式。共有十六种时态。
一般现在时:
一般现在时表示经常发生的习惯性的动作或目前所处的状态。
We go to school every day.
我们每天去学校。
The students study very hard.
学生们学习很努力。
She has a dictionary.
她有一本词典。
在一般现在时句中,如果主语是第三人称时,动词要进行变化,变化规则如下:
1) 一般情况下,动词后面直接加 -s. 例如:
works gets says reads
2) 以ch,sh,s,x 或 o 结尾的动词,在后面加 -es。 例如:
goes teaches washes
3) 以辅音字母 + y结尾的动词,把 y变为 i 再加 -es. 例如:
studies tries carries
动词 have 遇有主语是第三人称单数时,have 改为 has。 例如:
He has an interesting book.
他有一本有趣的书。
Our classroom has two doors.
我们的教室有两个门。
动词 be 遇有主语是第一人称单数时,be 改为 am 遇有主语是第二人称时,be 改为 are, 遇有主语是第三人称单数时,be 改为 is.
I'm a student and he is a student, too.
我是一个学生 ,他也是一个学生。
We are all students.
我们都是学生。
一般现在时的具体用法:
1) 表示现在,目前存在的状态,性质或经常发生的动作或习惯。一般现在时常用下列副词或短语来作时间状语:
often, usually, always, sometimes , seldom, every day(week, year, night), twice a month
I often visit my teachers.
我经常看望我的老师。
They do morning exercises every day.
他们每天做早操。
2) 某些动词如 come, go, move, stop, leave, arrive, be, finish, continue,start 等,在一般现在时句中可用来表示将来肯定会发生的动作。
The train comes at 3 o'clock.
火车三点钟到。
Tomorrow is Sunday.
明天是星期天。
3) 在时间状语从句或条件状语从句中,一般现在时代替一般将来时。
I'll help you as soon as you have problem.
只要你有困难我就会帮助你。
Tell Xiao Li about it if you meet him.
如果你碰见小李,告诉他这件事情。
4) 一般现在时还可用在戏剧, 电影的剧本解说,体育比赛的解说以及图片的说明等场合。
Tom carries the ball to the left.
汤姆把球带到左方。
The picture shows us how they built the
motorway last year.
这张照片给我们展示了他们去年如何建设高速公路。
一般过去式 表示过去的动作和状态。
I met him yesterday. 昨天我碰见了他。
一般过去式构成: 表示一般过去式的动词通常用动词的过去式形式来表示,而动词的过去式是在动词原形的基础上变化的。动词的过去式可分为规则动词和不规则动词。规则动词的过去式变化如下:
一般情况下,动词词尾加 -ed 。
worked played wanted acted
以不发音的 -e 结尾动词,动词词尾加 -d。
lived moved decided declined hoped judged raised wiped
以辅音字母 + y结尾的动词,把-y变为-i 再加-ed。
studied tried copied justified cried carried embodied emptied
以一个辅音字母结尾的重读闭音节动词,双写词尾辅音字母,再加 -ed。
stopped begged fretted dragged dropped planned dotted dripped
不规则动词的过去式变化规律性不强,须多加记忆。
go - went make - made get - got
buy - bought come - came fly-flew
一般过去式的用法:
1) 表示过去某一时刻或某一段时间内所发生的动作或情况,通常一般过去式带有表示动作时间状语的词,词组或从句,如 yesterday, the day before last, last week, two days ago 等,上下文清楚时可以不带时间状语。
I worked in that factory last year.
去年我在那一家工厂工作。
I went to the Tian Long Mountain yesterday.
昨天我们去了天龙山。
一般将来时 表示将来的动作或装态。
一般将来时的构成: shall (will) + 动词原形. 助动词 shall用于主语是第一人称时,will 用于主语是第三人称时。
I shall attend the meeting tomorrow.
我明天要参加会议。
The workers will build a school here next year.
工人们明年将在这儿盖一所学校。
一般将来时的否定形式是在 shall 或 will 后面加 not 构成,即: shall not + 动词原形。 will not + 动词原形。 shall not和 will not可以分别缩写为shan't 和 won't.
I shall not go to the Yingze Park next time.
下一次我不去迎泽公园了。
He won't come back this week.
这一周他不回来了。
will用在第一人称时,表示将来的意愿,决心,许诺, 命令等。
I will do my best to catch up with them.
我要尽力赶上他们 。
其他表示将来的句型:
(1)be + going + 动词不定式。也是一种将来时句型,表示打算,计划,最近或将来要作的某事。
I am going to Beijing next week.
下周我要去北京。
(2)be + 动词不定式。表示有职责,义务,可能,约定,意图等。
There is to be a meeting this afternoon.
今天下午有个会。
We are to meet the guests at the station.
我们要去车站接人。
(3) be about + 动词不定式,表示马上,很快作某事。
They are about to leave.
他们就要离开。
一般完成时 一般完成时表示动作发生在过去,但与现在有关系,说明这个动作在现在的结果,例如:
I have been here for two hours.
我来这儿已有两个小时了。
She has not said anything about it.
她对这件事情什么也没有说。
一般完成时的构成 have (has) + 过去分词, has 用于主语是单数第三人称,其它用 have。
I have worked for ten hours today.
今天我工作了十个小时。
He has found his pen.
他找到了他的钢笔了。
过去分词的构成方法如下 :
一般情况下,直接在动词原形后面加 -ed。
worked spelled linked
answered obeyed wanted
以不发音的 -e 结尾的动词只加 -d。
moved hoped divided
闭音节的单音节词,或以重读闭音节结尾的多音节词,这些词的末尾只有一个辅音字母时,双写这个辅音字母,再加 -ed。
stopped regretted dropped
一般完成时的用法:
1) 一般完成时表示在说话之前已经完成或刚完成的动作。
He has gone away.
他已经走了。
I have bought a ten-speed bicycle.
我买了一辆十速自行车。
They have cleaned the classroom.
他们打扫了教室。
2) 一般完成时表示动作从过去开始持续到现在,或者还有可能持续下去的动作或状态。 一般完成时常与for 和 since 引导的短语或从句连用。
We have lived here since 1976.
从一九七六以来,我们就住在这儿。
They have waited for more than two hours.
他们等了两个多小时。
一般进行时:
一般进行时表示现在正在进行的动作。
We are working now.
我们正在工作。
一般进行时的构成: be + 现在分词。
It's raining hard. 雨下的很大。
Are you studying now? 你在学习吗?
They are watching TV. 他们在看电视。
现在分词的构成方法如下 :
一般情况下,直接在动词原形后面加 -ing.
going asking finding working being seeing printing raining standing studying speaking spelling
以不发音的-e 结尾的动词,去-e ,再加-ing。
coming taking firing encircling writing becoming breathing leaving
闭音节的单音节词,或以重读闭音节结尾的多音节词,这些词的末尾只有一个辅音字母时,双写这个辅音字母,再加 -ing.
sitting running getting cutting stopping beginning planning permitting
一般进行时的用法:
1) 一般进行时的用法表示说话者说话时正在发生或者进行的动作, 它注重现在正在进行的动作,而不管动作从什么时间开始,到什么时间结束。
What are you doing now?
你在干什么呢?
I am looking for my key.
我在找我的钥匙。
The workers are building a big library.
工人们正在建一座大型图书馆。
2) 一般进行时表示目前一段时间内正在进行的动作,也许此时此刻这个动作并没有进行。
The students are preparing for the examination.
学生们正在作考试准备。
3) 某些动词的现在进行时可以表示即将发生的动作,这些动词有 arrive, come, leave, start等。
They are going to Hong Kong tomorrow.
他们明天要去香港。
I am coming. 我就来。
过去完成时:
过去完成时表示过去某一时刻或某一动作之前完成的动作或所处的状态,过去完成时常和 by , before 等词组成的短语和从句连用。
过去完成时的构成: had + 过去分词
We had already learned two thousands words by the end of last year.
到去年年底我们已经学了2000个单词。
When we arrived at the station, they had waited for more than twenty minutes.
我们到达车站的时候,他们已经等了二十多分钟。
将来完成时:
将来完成时表示将来某一时刻或某一时刻之前完成的动作或所处的状态。
将来完成时的构成:
shall (will) + have + 过去分词
After we finish this text, we'll have learned twenty texts.
这课课文结束后,我们就学了二十课课文了。
By the next month, I'll have finished my task.
到下个月,我将完成任务。
过去进行时:
过去进行时 表示过去某一时刻或某一段时间内正在进行的动作,过去进行时常和表示过去时的时间状语词组或从句连用。
过去进行时的构成:
were (was) + 动词现在分词
He was reading last night.
昨天晚上他正在看书。
I was watching TV when she came to see me.
她来看我的时候,我正在看电视。
The students were reading loudly when I came into the classroom.
我进教室的时候,学生们正在大声地读课文 。
将来进行时
将来进行时表示将来某一段时间正在进行的动作或有可能发生或预计要发生的动作。
将来进行时的构成:
shall (will) + be + 现在分词
What will you be doing next week?
下一星期你在干什么?
I shall be typing in my office.
我将在我的办公室打字。
(转帖)webwork并入struts团队了!
对学习Struts的朋友是一个利好的消息,正文如下:
webwork并入struts团队了!
来源:http://www.javaeye.com/viewtopic.php?t=17242&postdays=0&postorder=asc&start 发表时间:2005-11-29 09:29
WebWork joining Struts
Yes, it's true. The WebWork development team (Jason and I) have been working with the Struts development team (Don Brown and Ted Husted) and have come to the conclusion that the best thing for Java community would be to merge WebWork in to Struts.
Read Ted's email here, but the gist of it is this: WebWork is a great technology, and Struts is a great community. It's a perfect match and bringing the two together will only be better for WebWork and Struts users alike. The only down side for me is that I'll be working less with OpenSymphony, but I believe that is a small price for all the great benefits that come from this merger.
Just to be clear, WebWork is not going away. WebWork 2.2 is still coming out any day now, and there may even be a WebWork 2.3. But new minor/major versions won't be coming out under the WebWork name for much longer. Instead, they will be released under the Struts incubator program with the intent to eventually become Struts Action Framework 2.0.
So don't worry, WebWork 2.1.8, 2.2.1, and other bug fix releases will continue to come out and we will support the WebWork community as long as needed. In addition, we'll make compatibility with both Struts and WebWork a high priority, so future releases may help with that. To be clear: no one is leaving WebWork and it will continue to be supported for a very long time.
With this renewed energy, larger development team, and larger community, the combined efforts of Struts and WebWork will surely make the Struts platform the easiest, fastest, and most powerful Java web framework available. We hope that all the WebWork users and developers are as excited about this as we are and are ready to take WebWork to the next level
原文:http://www.opensymphony.com/webwork/
阅读:321次 〔lanxing〕
版权声明
评论人:lanxing 参与分: 6527 专家分: 181 发表时间: 2005-11-29 09:42 评论
一下文字来自javaeye的管理员 robbin
==========================================================
看到了这个消息以后感觉非常吃惊,所以跟踪相关的link仔细阅读了一下相关的网页,看完以后我认为对于webwork和struts来说这都是一个重大利好的消息。从整个事件来看,并不是单纯的webwork开发团队合并struts团队这么简单,事实上struts1.3和webwork2.2仍然按照原定roadmap继续发展,而两个团队核心开发人员发起一个新的项目Struts Ti,它的readmap是:
引用:
* Ti phase 1 = WebWork 2.2 + Struts 1.x compatibility library and migration tools
* Ti phase 2 = phase 1 + Commons Chain integration + Beehive's Page Flow + simplified annotations + quick development mode
从这个roadmap可以看出来,新项目Struts Ti是以webwork的整体架构为基础,辅以Struts的一些库,并且该项目的四个发起人联名的声明中这样说:
引用:
As some of you know, the underlying idea behind Ti was to use WebWork as the core of Struts Action Framework 2.x. Conceptually, WebWork and Struts 1.x are very similar. We've often said, without embarrassment, that WebWork does many things better than Struts 1.x. Meanwhile, WebWork has the ability to provide a layer of almost full backwards-compatibility for Struts 1.x, and we have already demonstrated we can integrate Beehive's (very cool) Page Flow with WebWork.
这段话明白无误的指明新框架是以webwork为core的,并且webwork可以提供一个抽象层,以完全向后兼容Struts1.x,并且struts还可以集成Apache Beehive的Page Flow。
因此,我想那些担心webwork从此消失的人可以打消顾虑了,消失的只是webwork这个名字,和com.opensymphony的package前缀,而webwork的程序架构却不会消失。
对于Struts的使用者来说,Struts虽然拥有一个庞大的使用群体,但是Struts在技术上已经非常落伍,再不进行重大的架构革新,势必要被淘汰。因此,这个事情是Struts开发团队的一次自救的革命,从Struts1.3到Struts Ti的改变如同EJB2到EJB3的改变,旧的Struts1.3的架构被完全抛弃,吸收了更加先进的开源软件和架构之后,推出的新东西。
对于Webwork的使用者来说,获得了更加广泛的用户群体和接受度。并且核心开发团队也得到了壮大,相信未来的新版本推出速度可以更快了,而不是现在这样,对webwork2.2都望穿秋水了。
另外非常值得注意的是,Struts Ti的目标可不止集成Webwork这么简单,看看它的phase 2,集成Beehive的Page Flow,JDK1.5的annotations,目标是Ruby on Rails般的快速开发模式,多么诱人的前景!
============================================================
JAVA开发者应该去的20个英文网站-转贴
JAVA开发者应该去的20个英文网站-转贴 发表时间: 2005-05-16 17:52
[http://www.javaalmanac.com] - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
[http://www.onjava.com] - O'Reilly的Java网站. 每周都有新文章.
[http://java.sun.com] - 官方的Java开发者网站 - 每周都有新文章发表.
[http://www.developer.com/java] - 由Gamelan.com 维护的Java技术文章网站.
[http://www.java.net] - Sun公司维护的一个Java社区网站.
[http://www.builder.com] - Cnet的Builder.com网站 - 所有的技术文章, 以Java为主.
[http://www.ibm.com/developerworks/java] - IBM的Developerworks技术网站; 这是其中的Java技术主页.
[http://www.javaworld.com] - 最早的一个Java站点. 每周更新Java技术文章.
[http://www.devx.com/java] - DevX维护的一个Java技术文章网站.
[http://www.fawcette.com/javapro] - JavaPro在线杂志网站.
[http://www.sys-con.com/java] - Java Developers Journal的在线杂志网站.
[http://www.javadesktop.org] - 位于Java.net的一个Java桌面技术社区网站.
[http://www.theserverside.com] - 这是一个讨论所有Java服务器端技术的网站.
[http://www.jars.com] - 提供Java评论服务. 包括各种framework和应用程序.
[http://www.jguru.com] - 一个非常棒的采用Q&A形式的Java技术资源社区.
[http://www.javaranch.com] - 一个论坛,得到Java问题答案的地方,初学者的好去处。
[http://www.ibiblio.org/javafaq/javafaq.html] - comp.lang.java的FAQ站点 - 收集了来自comp.lang.java新闻组的问题和答案的分类目录.
http://java.sun.com/docs/books/tutorial/] - 来自SUN公司的官方Java指南 - 对于了解几乎所有的java技术特性非常有帮助.
http://www.javablogs.com] - 互联网上最活跃的一个Java Blog网站.
http://java.about.com/] - 来自About.com的Java新闻和技术文章网站.
温度计摔坏后的正确处理方法
今天,给孩子量体温前,用力的把里面的水银柱往下甩,不小心碰在拉链上,碎了。水银洒在地上成了小点。孩子正在床上睡觉。我想一点点水银可能没事,就没管。
跟着,我就听人说,容易引起小孩汞中毒。
正确的方法是:把水银收集起来,放在水里,再密封。说是在电视上看的。
我赶紧把小孩带出房间,敞开房门,请母亲把房间里的水银扫出去了。因为已经碎成了小点,像电视上说的那样做是不可能的了。
我又买了一支体温计,这支比较容易把水银柱甩下去。
所以,大家在买体温计要试验一下,看容不容易把水银柱甩下去,不然,到时用的话很急人的。
(转帖)[译]Struts Menu开发向导
哈,网络真是一个好东东,早就想在我们站使用菜单技术,可是我对此不熟悉,这里又有一个现存的东西可以拿来用了。
转自:http://kb.csdn.net/java/Articles/200511/3af84c4b-0aba-47ad-9060-58f81c7592ab.html
正文:
您的位置:CSDN 首页 -> 知识库 -> 文章摘要
[译]Struts Menu开发向导
作者: ∣来源:BlogJava∣原文地址∣2005-11-28
官方英文版向导(http://struts-menu.sourceforge.net/userguide.html)
一、从1.X升级到2.X需要做以下事情:
1、改变你的taglib声明中的URI。
<% at taglib uri="http://struts-menu.sf.net/tag" prefix="menu" %>
2、改变<plug-in>,使用新的包名"net.sf.navigator." 。
<plug-in className="net.sf.navigator.menu.MenuPlugIn">
3、改变你的menu-config.xml文件,使用新的包名"net.sf.navigator." 。
<Displayer name="Simple"
type="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
二、快速开始:
1、下载最新的struts-menu版本;
2、解包到本地目录;
3、下载Tomcat或者其它Servlet容器;
4、把struts-menu.war包放入Tomcat安装目录的wabapps目录下,并重启Tomcat服务。
5、打开htpp://localhost:8080/struts-menu/
三、把Struts Menu整合到你的应用程序中:
Struts Menu能够被轻易的整合到你的Struts应用程序中,它也可以整合到一个非Struts的应用程序中,但是我不喜欢这样做,所以在此没有提供相应的教程。这里将一步步的带你整合这个标签库。
你需要把struts-menu.jar放到你的WEB-INF/lib目录下。然后使用URI标签声明你的JSP文件中想使用的这个标签库。
如果使用Struts Menu 2.1,你还需要 Jakarta's Standard Tag Library JAR包放入你的WEB-INF/lib目录下。下载地址:http://ibiblio.org/maven/taglibs/jars/standard-1.0.4.jar,这个文件包括例程WAR包文件和二进制发布包。
1、放入struts-menu.jar包到你的应用程序的WEB-INF/lib目录中。
2、在你的struts-config.xml文件中加入plug-in设置。
<plug-in className="net.sf.navigator.menu.MenuPlugIn">
<set-property property="menuConfig"
value="/WEB-INF/menu-config.xml"/>
</plug-in>
3、你将需要在你的应用程序的/WEB-INF/menu-config.xml文件中定义你的菜单,这里提供一个简单的片断:
<Menu name="contactMenu" title="Contact" location="?Contact">
<Item name="email" title="E-Mail" location="?EMail"/>
<Item name="phone" title="Phone" location="?Phone"/>
</Menu>
更多全面的例程,请查看应用程序的web/WEB-INF目录中的menu-config.xml文件,你可以截取一段作为你需要的菜单。完整的属性列表,可以查看MenuBase class's javadocs(http://struts-menu.source......avigator/menu/MenuBase.html)。
4、在你的JSP文件的顶部加入taglib声明:
<% at taglib uri="http://struts-menu.sf.net/tag" prefix="menu" %>
5、在你的JSP文件中要放置菜单的位置加入taglib代码:
<menu:useMenuDisplayer name="TabbedMenu"
bundle="org.apache.struts.action.MESSAGE">
<menu:displayMenu name="Home"/>
<menu:displayMenu name="About"/>
</menu:useMenuDisplayer>
属性name="TabbedMenu"被定义在menu-config.xml文件的顶部:
<Displayer name="TabbedMenu"
type="net.sf.navigator.displayer.TabbedMenuDisplayer"/>
(译注:其实到此步即可在你的JSP文件中添加相应的菜单了,只不过是没有结合Velocity。在menu-config.xml文件的头部可以定义多个Displayer,每个Displayer都有name和type属性,name属性与JSP文件中menu:useMenuDisplayer标签的name属性相对应,即表明使用何种样式,具体的样式定义便在type属性中定义,type属性中是一个class。在menu-config.xml文件中的菜单定义中的name属性则与JSP文件中的menu:displayMenu标签的name属性相对应。)
使用定制的Velocity模版实施你的菜单,你需要整合Velocity到你的WEB应用程序中。如果需要这样做的话,请完成下面的步骤:
1、确定你的menu-config.xml文件有“Velocity”的displayer定义:
<Displayer name="Velocity"
type="net.sf.navigator.displayer.VelocityMenuDisplayer"/>
2、加入Velocity的JARs包到你的WEB-INF/lib目录中,下载velocity-1.4-rc1.jar(http://www.ibiblio.org/ma......y/jars/velocity-1.4-rc1.jar)和velocity-tools-view-1.0.jar(http://www.ibiblio.org/ma......velocity-tools-view-1.0.jar)。
3、加入globalMacros.vm(http://cvs.sourceforge.net/viewcvs.py/*checkout*/struts-menu/navigator/web/WEB-INF/classes/globalMacros.vm?content-type=text%2Fplain&rev=1.1(右键另存为))到你的WEB-INF/lib目录中。
4、改变你的JSP文件中displayer的值为“Velocity”,“config”属性指向一个文件(如config="/templates/tabs.html")或者如果tabs.htm在你的WEB-INF/classes目录中的话,则可设config="tabs.html"。
这里提供了一些使用Velocity的displayer例子,可在sample application(http://demo.raibledesigns.com/struts-menu/index.jsp)中查看。它总是在你的菜单需要的时候显示CSS,JavaScript和图像文件。下面有一些在当前的Struts Menu中用到的Velocity模版的例子的链接:
CoolMenus: Demo(http://demo.raibledesigns......menu/velocity-coolmenu4.jsp),
Template(http://struts-menu.sourceforge.net/templates/coolmenus.html)
NiceTabs: Demo, Template
Tabs: Demo, Template
XTree: Demo, Template
所有相关的有用的文件如果你需要的话都可以在下面的站点上下载:
Images (http://struts-menu.sourceforge.net/menu-images/)
Stylesheets (http://struts-menu.sourceforge.net/styles/)
Scripts (http://struts-menu.sourceforge.net/scripts/)
Templates (http://struts-menu.sourceforge.net/templates/)
更多的基于roles的显示/隐藏菜单的信息,请查看FAQs(http://struts-menu.sourceforge.net/faq.html)。
四、在Struts之外使用Struts Menu:
在2.2版中,Menu Repository能够使用MenuContextListener载入:
<!--
- Loads the menu-config.xml for struts-menu at startup,
- by default from "/WEB-INF/menu-config.xml".
- To override this, add a context-param named "menuConfigLocation"
- web.xml file.
-->
<listener>
<listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
</listener>
或者如果你使用Spring,甚至更容易。仅仅需要加入下面的部分到你的applicationContext.xml文件中:
<bean id="menu" class="net.sf.navigator.menu.MenuLoader">
<property name="menuConfig">
<value>/WEB-INF/menu-config.xml</value>
</property>
</bean>
<!-- The menuConfig property is an optional attribute. It is set to
/WEB-INF/menu-config.xml by default. -->
感谢Dan Luputan提供MenuLoader类的源代码。
五、从源文件编译:
要从源文件编译这个项目,执行下面的步骤:
1、下载并安装Maven(http://maven.apache.org/);
2、创建一个环境变量MAVEN_HOME指出你的Maven的安装目录,然后添加$MAVEN_HOME/bin到你的PATH变量中;
3、操纵这个目录你可以扩展源代码,执行“maven.jar”创建target/struts-menu.jar。
要展开struts-menu例程,需要下面的步骤:
1、下载和安装Tomcat;
2、创建一个环境变量CATALINA_HOME指出你的Tomcat的安装目录;
3、执行“maven deploy”把应用程序展开到Tomcat中;
4、打开http://localhost:8080/struts-menu在你喜爱的浏览器中。
如果你喜欢使用Eclipse开发项目,请参考此份开发向导(http://struts-menu.sourceforge.net/devguide.html)。
Robin's Java World 2005-11-28 10:15
--------------------------------------------------------------------------------
(转帖)eclipse下配置开发struts环境
转自:http://bbs.chinajavaworld.com/post/view?bid=48&id=676836&sty=1&tpg=1&age=0
http://bbs.chinajavaworld.com/user/download/676836/Strutseclipse%EF%BC%91.doc
http://bbs.chinajavaworld.com/user/download/676837/Strutseclipse%EF%BC%92.doc
http://www.laliluna.de/struts-jsf-jsp-servlets-tutorials.html
学习日记用户取回密码(重置密码)分析设计
用户重置密码的流程设计如下:
1、用户忘记密码,请求重置密码;
2、检测用户是否在72小时内请求过重置密码,若是,给出提示消息,中止;否则继续;
3、系统发一封包括用户ID和随机产生的6位Token到用户注册时留下的信箱,同时记下发送邮件的时间;
4、系统每隔1小时检测取回密码的用户的邮件发送时间,如果没有超过72小时,则继续检测;如果超过72小时,则删除用户重置密码的记录,用户需要重新请求发送密码;
5、用户收到重置密码的邮件,点击重置密码的链接,登录到重置密码的页面,用户输入新密码两遍;
6、如果用户在重置密码页面输入的用户ID和Token都正确并且两次新密码一致,则系统接受新密码,并经MD5加密后,存入数据库,新密码生效,引导用户转往用户登录页面,同时,删除用户重置密码的记录;
7、如果用户在重置密码页面输入的用户ID和Token有误或两次密码不一致或者密码字符非法,返回重置密码的页面,提示用户错误和重新输入新密码,直到用户输入正确或取消重置密码的过程;
在分析了学习日记重置密码流程后,画出了用户重置密码用例的活动图后(尝试用ArgoUML0.18.1建模,模型地址:http://learndiary.tigris.org/source/browse/*checkout*/learndiary/old/documentation/login/design/resetPsd1.zargo,活动图地址(gif格式):http://learndiary.tigris.org/source/browse/learndiary/old/documentation/login/design/resetPsd1ActivityDiagram.gif?rev=1.1&view=markup),下面接着对其中涉及的对象实体作一检查:
1、用户:重置密码的用户;
2、邮件:用户重置密码的链接(包括:用户ID和取回密码的标志码)的邮件;
3、邮件发送者:发送邮件的对象;
4、用户重置密码的数据:保存用户ID、取回密码的标志码、发送重置密码邮件的时间的信息;
5、用户重置密码的数据保管者:维护用户ID、取回密码的标志码、发送重置密码邮件的时间的信息的保管者;
6、重置密码数据有效期限检查者:每隔一定时间间隔(如1小时)检查一次重置密码的数据是否有效,无效了就通知数据保管者抛弃数据;
"alt"和"title"属性的使用(转帖两篇)
<TITLE><ALT>里面如何换行(来自http://www.aspx.cn/html/web/DreamWeaver/589/42989.html)
--------------------------------------------------------------------------------
<a href="#" title="《杀手无罪》
类型:电影
产地:美国
片长:单本剧
主演:妮芙·坎贝尔 唐纳德·萨瑟兰 威廉·梅西 约翰·瑞特尔特蕾茜·乌尔曼" border="0">鼠标放上去看说明</a>
“title”的使用:来自http://www.w3.org/TR/html4/struct/global.html#h-7.4.3
7.4.3 The title attribute
Attribute definitions
title = text [CS]
This attribute offers advisory information about the element for which it is set.
Unlike the TITLE element, which provides information about an entire document and may only appear once, the title attribute may annotate any number of elements. Please consult an element's definition to verify that it supports this attribute.
Values of the title attribute may be rendered by user agents in a variety of ways. For instance, visual browsers frequently display the title as a "tool tip" (a short message that appears when the pointing device pauses over an object). Audio user agents may speak the title information in a similar context. For example, setting the attribute on a link allows user agents (visual and non-visual) to tell users about the nature of the linked resource:
...some text...
Here's a photo of
<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">
me scuba diving last summer
</A>
...some more text...
The title attribute has an additional role when used with the LINK element to designate an external style sheet. Please consult the section on links and style sheets for details.
Note. To improve the quality of speech synthesis for cases handled poorly by standard techniques, future versions of HTML may include an attribute for encoding phonemic and prosodic information.
7.4.4 Meta data
(转帖)Jive的中文问题及解决办法及关联转帖
首页 » 研究文集 » Jive 研究 搜索标题相关文章 发表评论 开始监控 加入收藏夹
Jive的中文问题及解决办法
bruce 原创 (参与分:520452,专家分:6410) 发表:2002-08-31 12:52 阅读:12622次
说明:本文没有特别指出的地方的环境配置均为:
Windows XP + Tomcat 3.3a + mysql 3.23.51-nt + mysql-connector-java-2.0.14-bin.jar
Jive中产出乱码的原因是多方面的,包括操作系统、Web服务器(比如Tomcat)、Jive的设置、数据库(链接)的编码方式、页面的编码等多个环节,任何一个环节出现编码问题,都会导致你的最终页面出现乱码。相应的解决问题也需要分多步进行。比如,你创建一个论坛,然后页面显示是乱码,你可以根据如下顺序定位问题:
1. 查看数据库中的记录是否是乱码。如果是,再试着修改数据库的链接的编码方式;如果仍然乱码,说明在向后台传送数据前就发生了编码问题,可以查看页面的编码方式、或者在提交前进行如下编码转换:
String new = new String(old.getBytes(“8859_1”), “GB2312”);
2. 如果数据库中正常显示中文,那么说明是页面显示的问题。
在上述每一步,你总是可以使用log语句及时输出,追踪乱码发生的位置。
下面是一些常见的问题,和解决办法。
1. 问:创建论坛或发贴时,输入的中文名显示乱码,查看数据库中,也为乱码。
解决办法:停止Tomcat,修改{JIVE}\WEB-INF\jiveHome\jive_config.xml(在jive.database.defaultProvider节点中):
<serverURL>jdbc:mysql://localhost/jive</serverURL>
为:
<serverURL>jdbc:mysql://localhost/jive?useUnicode=true&characterEncoding=gb2312</serverURL>
注意useUnicode=true与characterEncoding=gb2312之间不要直接使用“&”,需要使用XML转意字符:&加上amp;
2. 问:搜索中文时,search.jsp的输入框中的文字变成了“???”,导致不能搜索出任何结果。
解决办法:将search.jsp页面中的所有的:
/search.jsp...q=<%=(queryText!=null)?queryText:"")%>
修改为:
/search.jsp?...q=<%= (queryText!=null)?java.net.URLEncoder.encode(queryText,"GB2312"):""%>
你还可以参加cherami的一篇文章:
Tomcat下的JIVE2的中文问题的报告
本文会不断完善,欢迎大家把自己解决Jive乱码的经验回复在文后,我会把最新的一些内容及时补充近来,一起来完善本文。给更多的朋友提供方便,先谢谢大家!
TOMCAT下的JIVE2的中文问题的报告
首页 » 研究文集 » Jive 研究 搜索标题相关文章 发表评论
TOMCAT下的JIVE2的中文问题的报告
cherami 翻译 (参与分:700911,专家分:21389) 发表:2002-05-26 15:44 更新:2002-11-10 18:24 版本:1.0 阅读:7675次
原文摘自jive论坛用户shyguy的帖子。
翻译者:cherami
XXX 注意 XXX:
所有的结论都是基于一下平台:
Winnt4.0(简体中文版) + Sun JDK1.3 + Tomcat4.0-b7 + jive2.0.1 + mysql3.23.38 + org.gjt.mm.mysql.Driver-2.04
在这样的条件下,安装在TOMCAT下的Jive2.0不能像其他JSP应用那样不做任何修改就可以正确的显示中文。我不敢确定但是几个测试的结果告诉我tomcat核心的编码总是8859_1,无论是否在双字节的操作系统下。当客户端输入一些中文,request.getParameter()请求返回的字符串是8859_1,因此如果你使用System.out.println()将输入打印到控制台,它看上去就像"??x?"。如果你在每个JSP文件的开始加上 <%@ page contentType="text/html;charSet=gb2312" %> 标签,中文就可以正确显示,因为tomcat知道它的内核编码是8859_1而输出到客户端的PrintWriter(它是JSP的输出对象)的编码是gb2312,因此PrintWriter在内部做了令人愤怒的8859_1到gb2312的转换。这就是为什么我们总是添加contentType解决中文问题的原因。
但是不幸的是,当我们通过JDBC从数据库提取字符串的时候事情就不一样了。
看看下面的虚拟的代码: str=rec.getString(field); 你能告诉我字符串str的编码吗?
答案是: gb2312!!!
(就像mysql jdbc驱动一样,很多包都根据平台返回字符串的编码,例如 SimpleDateFormat 和 JavaMail。)因此,当你将字符串传递到PrintWrite时,愚蠢的PrintWriter将再次使用8859_1-->gb2312的转换。可怜的客户端别无选择的看到丑陋的????。
令我困惑的是:
request.getParameter()的返回字符串的编码是8859_1,因此向控制台打印时它看上去像??x?,但是Jive可以将字符串用gb2312编码存入数据库!!!
例如,在post.jsp里面,在消息创建发生以前,我将中文主题和内容输出到控制台,它看上去是??x?,但是在mysql数据库里面,SELECT * FROM jiveMessage将返回正确的中文!
同时我也发现response.setLocale()对中文输出没有作用。
如何解决呢:
1. 在输出前使用String.getBytes()反向转换gb2312字符串,这是最愚蠢的方法。
2. 在英文平台下运行服务器。
3. 最最最最好的方法是: 使用其他的 java服务器!
对于TOMCAT用户的建议是:
如果你确实想在一个双字节的操作系统(例如简体中文版的Winnt)上运行TOMCAT,你最好: (1)添加<%@ page contentType="text/html;charSet=gb2312"%>到 \include\brankding\style.jsp 和 \admin\include\global.jsp的第一行(路径是相对TOMCAT的主目录)
(2)反向转换从数据库返回的所有字符串为8859_1编码。这需要修改JIVE核心的所有DBxxxx类,
或者修改JDBC驱动的"result.getString()"进行反向转换,
或者修改TOMCAT内核中的"out"对象进行反向转换。
(3)如果你修改了tomcat内核中的"out对象,在将中文信息传递到jive/index.jsp时你最好使用URLEncode(/dir/URL.jsp?gb2312_msg)。
附:Rexip AppServer 有Record-Breaking Benchmark Results处理Java应用的服务器端中文问题。
版权声明 本篇文章对您是否有帮助? 投票: 是 否 投票结果: 6 3
作者其它文章:
使用Checklist提升项目的质量
提升项目组的开发效率
使用JkUnMount
Apache2.0运行模型分析及性能调整
优化Apache 2.0 性能
作者全部文章 查看作者的Blog
评论人:scorpio_leon 参与分: 365 专家分: 55 来自: 上海
发表时间: 2002-08-13 17:16
还有一个解决方案
在不进数据库,需要中文参数的页面使用filter,不要忘记了,filter是可以配置的:)
有既需要进数据库,又需要其他中文参数传递的页面呢?
一般不会有吧,有的就举个例子讨论看?
评论人:shyguy 参与分: 23055 专家分: 330 来自: 西湖
发表时间: 2002-09-18 12:10
嘿嘿,老了。很久以前的事情了,有些观点甚至是错误的。
对不起了。
这个文章共有 2 条评论,共 1 页