仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 425|回复: 10
打印 上一主题 下一主题

[学习教程] 发布一篇Struts构架中action的跳转详解

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
没有那个大公司会傻了吧唧用.net开发大型项目,开发了,那等于自己一半的生命线被微软握着呢。而.net不行,限制在window系统,又是捆绑,鄙视微软之!
1.完全的action
<actionpath="/aFullAction"
type="somePackage.someActionClass">
name="someForm"
input="someJSP.jsp"
<forwardname="successful"path="someJSP.jsp"/>
<forwardname="failed"path="someOtherJSP.jsp"/>
</action>
起首,Struts的ActionServlet吸收到一个哀求,然后依据struts-config.xml的设置定位到响应的mapping(映照);接上去假如form的局限是request大概在界说的局限中找不到这个form,创立一个新的form实例;获得form实例今后,挪用其reset()办法,然后将表单中的参数放进form,假如validate属性不为false,挪用validate()办法;假如validate()前往非空的ActionErrors,将会被转到input属性指定的URI,假如前往空的ActionErrors,那末实行Action的execute()办法,依据前往的ActionForward断定方针URI。
如许做的效果是:execute()仅当validate()乐成今后才实行;input属性指定的是一个URI。
2.唯一Form的action
<actionpath="/aFormOnlyAction"
type="org.apache.struts.actions.ForwardAction"
name="someForm"
input="someJSP.jsp"
parameter="someOtherJSP.jsp"
/>
起首,Struts会在界说的scope征采someForm,假如找到则重用,假如找不到则新建一个实例;获得form实例今后,挪用其reset()办法,然后将表单中的参数放进form,假如validate属性不为false,挪用validate()办法;假如validate()前往非空的ActionErrors,将会被转到input属性指定的URI,假如前往空的ActionErrors,那末转到parameter属性指定的方针URI。
如许做的效果是:没有action类能够寄存我们的营业逻辑,以是一切必要写进的逻辑都只能写到form的reset()大概validate()办法中。validate()的感化是考证和会见营业层。由于这里的action映照不包含forward(也没成心义),以是不克不及重定向,只能用默许的谁人forward。这类唯一form的action能够用来处置数据猎取并forward到另外一个JSP来显现。
3.唯一Action的action
<actionpath="/anActionOnlyAction"
type="somePackage.someActionClass">
input="someJSP.jsp"
<forwardname="successful"path="someJSP.jsp"/>
<forwardname="failed"path="someOtherJSP.jsp"/>
</action>
起首,ActionServlet吸收到哀求后,获得action类实例,挪用execute()办法;然后依据前往的ActionForward在设置中找forward,forward到指定的URI或action。
如许做的效果是:没有form实例被传进execute()办法,因而execute()必需本人从哀求中猎取参数。Action能够被forward大概重定向。这类action不克不及处置经由过程HTMLFORM提交的哀求,只能处置链接式的哀求。
4.唯一JSP的action
<actionpath="/aJSPOnlyAction"
type="org.apache.struts.actions.ForwardAction"
parameter="someOtherJSP.jsp"
/>
起首,ActionServlet接到哀求后挪用ForwardAction的execute()办法,execute()依据设置的parameter属性值来forward到谁人URI。
如许做的效果是:没有任何form被实例化,对照实际的情况多是form在request更初级其余局限中界说;大概这个action被用作在使用程序编译好后充任体系参数,只必要变动这个设置文件而不必要从头编译体系。
<p>
Java到底会发战成什么样,让我们拭目以待吧,我始终坚信着java会更好。以上都是俺个人看法,欢迎大家一起交流.
活着的死人 该用户已被删除
沙发
发表于 2015-1-20 18:09:54 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
若天明 该用户已被删除
板凳
发表于 2015-1-24 13:19:23 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
简单生活 该用户已被删除
地板
发表于 2015-1-29 06:47:05 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
不帅 该用户已被删除
5#
发表于 2015-2-5 22:00:44 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-13 19:23:48 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
飘飘悠悠 该用户已被删除
7#
发表于 2015-2-15 22:57:28 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
金色的骷髅 该用户已被删除
8#
发表于 2015-3-1 22:55:12 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
分手快乐 该用户已被删除
9#
发表于 2015-3-11 00:13:48 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-17 16:36:03 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
谁可相欹 该用户已被删除
11#
发表于 2015-3-24 12:08:59 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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