JAVA网站制作之Struts心得―DispatchAction利用日志
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。心得Struts1.1公布了这么长工夫了,我才方才入手下手体系地进修Struts的相干常识,经由前一阵专心研讨,对Struts1.1中已有的类DispatchAction有了进一步的熟悉。我将在这里总结一下,但愿能对人人有所匡助。
在1.0版本中我们一般都是用execute办法来完成我们对营业逻辑的处置及页面的转发。一般在一个Action中我们都只可以完成一种营业逻辑的操纵。假如如果完成多个营业逻辑(好比:增加、删除等)功效邻近的营业逻辑我们就没有举措了么?谜底是不是定的,我们能够经由过程在页面中界说一个埋没变量,在分歧的页面请求处置分歧的营业逻辑的时分我们能够付与这个变量分歧的值,并在execute办法中经由过程对变量值的判别来完成分歧的营业逻辑操纵。
举例来讲,我们起首在页面中界说一个埋没变量。
<html:hiddenproperty="operAt"/>
然后界说一个JavaScript函数,我们能够在经由过程点击提交按钮的时分,在函数体内里修正它的值。
<SCRIPT>
functionset(key){
with(document.forms){
operAt.value=key;
}
}
</SCRIPT>
当我们点击提交按钮便触发该事务,修正变量的值。
<html:submitonclick="set(save);">SAVE</html:submit>
那我们在背景execute中又怎样处置相干逻辑呢?
StringoperAt=myForm.getOperAt();
if(operAt.equals("create")){...
if(operAt.equals("save")){...
很复杂吧!固然说如许做我们能够完成多个营业逻辑在统一个Action中完成,但是带来的价值即是代码的冗杂,不容易了解。
上面我们就要先容一下DispatchAction类了。它是Action的一个子类,它能够完成多个营业逻辑在统一个Action傍边的完成,而下面的例子在DispatchAction中也就酿成了上面的情势:
publicActionForwardcreate(
ActionMappingmapping,
ActionFormform,
HttpServletRequestrequest,
HttpServletResponseresponse)
throwsException{...
publicActionForwardsave(
ActionMappingmapping,
ActionFormform,
HttpServletRequestrequest,
HttpServletResponseresponse)
throwsException{...
每种营业逻辑都能在DispatchAction傍边找到对应的办法。那末我们怎样往完成如许的挪用呢?DispatchAction中对struts-config.xml的设置比一样平常的Action设置稍显贫苦,举例来说:
<actionpath="/telConsle"type="com.meng.action.TelConsleDispatch"
name="telForm"scope="request"validate="false"parameter="method"/>
我们在这里指定了parameter的值为method,而当我们哀求Action的时分我们必需指定method的值来断定往我们想要挪用哪一个Action办法。如:
http://localhost:8080/tsss/telConsle.do?method=save
明显,经由过程显现链接指定参数值的办法能够到达我们挪用办法的目标。但是我们假如不想显现挪用的话我们应当如何处置呢?还记得后面讲过的办法么?我们在页面中界说一个埋没的变量,然后经由过程对变量的赋值来断定我们来断定我们将要实行的营业办法。在这里我们可不成以一样如许利用呢?
谜底是一定的,我们固然能够经由过程界说一个相似于<html:hiddenproperty="operAt"/>的变量,只需对该变量赋上对应DispatchAction中的办法的值来断定我们要挪用的营业办法。但是笔者比倡始用Struts标签来界说如许的隐含的变量,由于Struts标签为静态标签,它大概必要在FormBean中界说该属性的get和set办法,而在parameter中界说的值不必要在FormBean傍边界说get和set办法。笔者倡议用html的尺度标签<input>来界说该埋没变量。由于该标签为静态标签,假如我们该用Struts标签的话大概招致页面堕落。
怎样?经由过程下面的叙述,您是不是可以对DistpatchAction有了开端懂得呢?关于DispatchAction用法小弟仍是出此体验,有甚么不敷的地方还但愿列位年夜虾能品评指导!
因为能用到多少功能就用多少,不能用就不用!总的来说:要简单要性能好,可以不用框架。你说java复杂,就是因为你把java(j2ee)与这些框架混在了一起。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 是一种使网页(Web Page)产生生动活泼画面的语言 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 是一种为 Internet发展的计算机语言 是一种使用者不需花费很多时间学习的语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 是一种使网页(Web Page)产生生动活泼画面的语言 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
页:
[1]
2