ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:431.24KB ,
资源ID:19419623      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19419623.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(业务控制器Action组件教学示例及课后练习参考资料Word文件下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

业务控制器Action组件教学示例及课后练习参考资料Word文件下载.docx

1、而execute()方法,则是每个Action的入口方法,默认情况下 XWork将调用每个 Action的 execute()方法以完成业务逻辑处理。这样对于我们的Action类来说,最简单的方式就是只实现public java.lang.String execute() throws java.lang.Exception这个方法就可以了,它的返回值是一个字符串类型的路径别名,这个别名定义在配置文件的result标记中。5、实现Action接口的主要目的(1)规范Action类的编程必须重写execute()方法,能够减少上面的错误情况(2)规范Action程序的处理的“结果状态”的名称标准

2、化返回的结果6、将UserInfoAction类实现com.opensymphony.xwork2.Actionpackage com.px1987.sshwebcrm.action;import java.text.DateFormat;import java.util.Date;import com.opensymphony.xwork2.Action;public class UserInfoAction implements Action public String execute() resultMessage = 您好!您登陆成功!时间为:+ DateFormat.getInsta

3、nce().format( new Date(); return this.SUCCESS; private String resultMessage; public String getResultMessage() return resultMessage; public void setResultMessage(String resultMessage) this.resultMessage = resultMessage; public UserInfoAction() 7、以后不再会出现下面的错误或者不规范的情况(1)出现错误(2)也不再会出现不规范的返回结果8、为什么要实现接口呢

4、?Struts2中的action可以不再继承于任何类或需要实现任何接口,返回的SUCCESS是在接口com.opensymphony.xwork2.Action中定义,另外同时定义的还有ERROR, INPUT, LOGIN, NONE。 SUCCESS:Action正确的执行完成,返回相应的视图; NONE:表示Action正确的执行完成,但并不返回任何视图; ERROR:表示Action执行失败,返回到错误处理视图; INPUT:Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入的界面,一般在应用中,会对这些参数进行验证,如果验证没有通过,将自动返回到该视图; LO

5、GIN:Action因为用户没有登陆的原因没有正确执行,将返回该登陆视图,要求用户进行登陆验证。9、再部署并执行本程序-Struts.xml文件不变化http:/127.0.0.1:8080/sshwebcrm/userManage/userLogin.jsp将Action类继承ActionSupport类继承com.opensymphony.xwork2.ActionSupport(可以规范Action编程,同时可以获得Struts2所提供的技术支持)1、com.opensymphony.xwork2.ActionSupport类(适配器类-类似HttpServlet类)参考JavaDoc,

6、可知ActionSupport类实现了下面的接口: com.opensymphony.xwork2.Action、 com.opensymphony.xwork2.LoaleProvider com.opensymphony.xwork2.TextProvider com.opensymphony.xwork2.Validateable com.opensymphony.xwork2.ValidationAware com.uwyn.rife.continuations.ContinuableObject java.io.Searializable java.lang.Cloneable因此,

7、如果继承于ActionSupport类,将能够获得更多的技术支持(如国际化、表单验证、拦截器)、文件上传下载等2、编程该类import com.opensymphony.xwork2.ActionSupport;/ public class UserInfoAction implements Action public class UserInfoAction extends ActionSupport3、再执行本程序 http:8080/Struts2Web/userManage/userLogin.jsp4、此时如果在Action类不重写execute方法(1)此时没有语法错误因为继承是“

8、非强制性”、而实现接口“是强制性”(2)执行的结果出现下面的状况,出现了“逻辑性”的错误(3)由于ActionSupport类不是抽象类 更好的设计,应该将ActionSupport类设计为抽象类,并且将execute()方法继续设计为抽象方法public String execute() return “”;注意:在继承ActionSupport类的同时,还必须要重写execute()方法。体验自定义Action调用方法的实现示例1、修改UserInfoAction类 public String doUserLogin() 采用自定义方法处理登陆功能!Struts2的Action是基于Com

9、mand模式的实现,在Struts2中,除了实现Action接口的execute()方法之外,Action还可以定义多个执行方法。这些方法必须要是无方法参数,并且返回返回字符串的方法。2、修改 struts.xml配置文件中的项目!DOCTYPE struts PUBLIC -/Apache Software Foundation/DTD Struts Configuration 2.0/EN /struts.apache.org/dtds/struts-2.1.dtdstruts package name =userInfoPackage extends =struts-default ac

10、tion method=doUserLoginname =userInfoAction class =com.px1987.sshwebcrm.action.UserInfoActionresult name=/userManage/loginSuccess.jsp/action/package/struts3、访问自定义的Action方法时在表单中继续以http:8080/sshwebcrm/userInfoAction.action标准的请求方式进行访问,将出现下面的结果。注意此时Strust2系统将找由“method=”所定义的目标方法,而不再找标准的execute方法。从结果来看是相同

11、的,这主要是由于在配置文件中的method=的设置所起的作用。4、如果Action类中有多个不同的自定义方法时,刚才的实现方法不能满足要求(1)此时可以采用在Action名后加上“!xxx”(xxx为目标方法名)指定请求的目标方法因此,该方法能够满足在Action类中有多个不同的处理器方法的应用要求。(2)实现的方法只需要在请求时指定目标方法名。比如,修改userLogin.jsp页面的表单提交的action属性为下面的内容form action=$pageContext.request.contextPath/userInfoAction!doUserLogin.action method=

12、post并且可以将“method=”除掉,再进行表单的提交,同样也将出现下面的结果 其中struts.xml 文件中的标签中namespace属性是对我们的action的访问路径有影响的。它的出现可以让我们避免多个名字相同的action定义出现冲突。它的默认值是”,也就是空字符串。另外它还可以取值为根目录,也就是”/”,被称为Root Namespace,它对应着访问Web应用根目录的情况,对我们的例子来说就是在浏览器中访问/showDateAction。其它的取值,一般来说以/开头,例如/example,则相当于给当前所有的action定义都加了一个前缀,那么假设我们当前例子的配置文件的pa

13、ckage定义为: namespace=/webcrmUserInfo重新发布项目后,我们访问Action的路径将会是:8080/sshwebcrm/webcrmUserInfo/userInfoAction!doUserLogin.action。体验Struts2中Action类的多个业务处理方法的应用1、如果需要自定义多个不同的业务调度方法(模拟Struts框架中的DisptachAction的功能)(1)在配置文件中不能再采用method属性的定义方式在struts.xml中除掉method=项目DOCTYPE struts PUBLIC/struts.apache.org/dtds/s

14、truts-2.0.dtdaction name = class=method=/package (2)在Action类中再增加第2个自定义的方法 public String doUserRegister() 您好!这是在另一个自定义方法处理的注册功能!(3)在userManager目录中再添加一个userRegister.jsp页面并增加下面的表单% page pageEncoding=gb2312% taglib prefix=c uri=DOCTYPE html PUBLIC -/W3C/DTD XHTML 1.0 Transitional/EN/www.w3.org/TR/xhtml1

15、/DTD/xhtml1-transitional.dtdhtml xmlns=/www.w3.org/1999/xhtmlheadtitle蓝梦集团CRM系统在线用户注册功能页面 link href=c:url value=/css/pageContentStyle.css rel=stylesheet type=text/css /script language=javascript src=/javascript/commonJavaScript.js type=text/javascript/script/headbodyjsp:include page=/commonPage/page

16、Head.jsp/jsp:include/commonPage/navMenuBar.jspbr/div id=someOnePageContentdoUserRegister.action 输入右面的认证码:input type=text name=verifyCodeDigitbr / 用户类型:select name=type_User_Admin option value=1前台用户 2后台管理员 您的名称:userName 您的密码:passworduserPassWordsubmit value=提交submitButton onclick=this.value=正在提交请求,请稍

17、候reset取消/form/div/commonPage/authorInfo.jsp/body/html同样对userLogin.jsp页面页采用相同的方法(4)首先浏览首页http:8080/sshwebcrm/index.jspa href=$pageContext.request.contextPath/userManage/userRegister.jsp系统注册  |&$pageContext.request.contextPath/userManage/userLogin.jsp系统登录 &(5)然后再对第二个表单(也就是注册表单)进行操作 http:8080/sshwebcrm/userManage/userRegister.jsp提交后,将产生出下面的结果同样对于用户登录功能实现的测试这样将能够产生出原来的 Struts中的DisptachAction的效果,而只需要在请求的URL中指示目标方法的名称。同一个Action类可以定义为不同的“逻辑”(名称)1、体验采用“!”所带来的问题很容易出现错误$pageContext.request.contextPath/userInfoAction.action!2、在UserInfoAction类中再增加另外两个方法do

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1