JBuilder 2005 Struts深度体验之改造 - 编程入门网
有一个对应的ActionForm时,就用HTTP请求的数据填充这个ActionForm。
用Action代替switch.jsp的控制转换功能 我们在前面已经数落用switch.jsp实现请求转换控制的缺点,Struts框架的Action是实现请求转换控制的最适合替代者。 在这节里,我们就来创建一个名为LoginAction的Action,让其完美的接替switch.jsp的工作。 File->New...->Web->在Web页中双击Action图标,启动创建Action的向导。 1.指定Action名字及Web模块 图9 指定Web模块及Action名字 在Action中键入LoginAction作为Action的类名,其中Base class的下拉框中有许多Action基类可供选择,它们用于不同的场合,这些选项是: ·org.apache.struts.action.Action:标准的Action。 ·org.apache.struts.actions.ForwardAction:相当于JSP的<jsp:forward>,方便Struts控制器进行预处理。此外,从学究的角度上来说,在JSP页面直接通过<jsp:forward>违反了MVC的分层原则,控制器无法干预。 ·org.apache.struts.actions.IncludeAction:出于ForwardAction相似的原因,Struts推荐用IncludeAction代替JSP的<jsp:include>。 ·org.apache.struts.actions.LookupDispatchAction:如果一个表单有多个提交按钮,不同的提交按钮执行不同的业务操作,用DispatchAction最为合适。 ·org.apache.struts.actions.SwitchAction:用SwitchAction可在不同的Struts模块间转换。 由于我们的Action需要完成用户密码验证的业务,并根据结果转换到不同的页面中,所以这个LoginAction是一个普通的Action,故我们选择org.apache.struts.action.Action。 按Next到下一步。 JBuilder 2005 Struts深度体验之改造(3)时间:2010-04-15 天极2.设置Action的配置信息 图10 设置LoginAction的配置信息 ·Action path:访问这个Action的URI,接受默认的/loginAction,这样我们将通过类似这样的URL:http://127.0.0.1:8080/webModule/loginAction.do来访问这个Action。 ·FormBean name:下拉框中列出Web模块中所有的ActionForm,我们选择前一小节中所创建的userActionForm。这样客户端的HTTP请求访问LoginAction时,HTTP请求所带的数据就会被Struts总控制器自动填充到userActionForm中了。 ·Scope:Action有两个选择:request和session。表示ActionForm在填充后将放在request对象中还是session对象中,由于我们需要在通过密码验证后,才使用户登录系统。这样就不能使userActionForm在数据填充时就放入session中,而应该在通过密码验证后,手工将其绑定到session中(UserActionForm一旦绑定到session中,其valueBound()方法就会被调用,记录用户登录日志),故此,我们选择request。 ·input JSP:输入的JSP页面。在ActionForm需要进行数据有效性自校验的情况下,如果校验失败,Struts框架总控制器将请求返回到这个输入页面上。因为UserActionForm无需进行有效性校验(在3.1的第3步我们没有为UserActionForm实现自校验功能),所以无需指定输入的JSP。 按Finish按钮直接创建LoginAction,JBuilder自动打开Struts Config Editor,生动形象地展现用户登录模块Struts框架下的处理流程,如图11所示: 图11 Struts Config Editor 位于中心的/loginAction是访问LoginAction的URI,它是登录业务的控制器。Struts总控制器创建一个UserActionForm实例,并用HTTP请求的数据填充UserActionForm实例,然后将其传给LoginAction的execute()方法。 3.定义访问入口 现在我们需要调整login.jsp表单的提交地址,使用LoginAction来处理用户登录的请求,调整后的代码如所示: 代码清单 7 login.jsp 使用LoginAction处理用户登录
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |