企业级JAVAII软件工程系:聂常红cred_n@163.com内容回顾:内容回顾:•如何将一个web项目转变成一个struts2项目?•Struts2项目的基本组成部分,创建一个struts2项目的步骤有哪些?•struts.xml应保存在哪里?•如何指定表单中的action属性值?第2讲Struts2的控制组件•2.1Struts2的控制组件•2.2在Struts2项目中应用控制组件•2.3执行动作中的不同方法2.1struts2的控制组件•struts2的控制组件类型:–核心控制器:FilterDispatcher–业务控制器:Action由web.xml的filter和filter-mapping标识来设置•创建业务控制器(即动作类)步骤:–创建动作类–创建struts.xml配置动作包和动作1.创建动作类语法:•扩展ActionSupport类•动作类被访问后默认执行execute()方法:publicStringexecute()throwsException•在动作类设置成员变量及对应传入参数的属性的setter和getter方法。•动作类通过属性的setter方法获取客户端传来的数据,并保存在动作类变量中,客户端则通过属性的getter方法获取动作类的变量值Action可以不用扩展ActionSupport类,但使用它可以使我们创建的Action更简单、更规范1.创建动作类语法(续):•动作类处理客户端请求后会返回一个字符串,每个字符串对应一个逻辑视图•当动作类继承了ActionSupport后,通常使用以下一些常量作为动作执行后的返回值:INPUT、SUCCESS、LOGIN、NONE和ERROR常量返回值含义:–ERROR:表示动作类执行不成功–SUCCESS:表示动作类执行成功,并将由相关的JSP文件显示结果–LOGIN:表示需要先登录才可以执行动作–INPUT:表示需要先输入数据才能执行动作–NONE:表示动作类执行成功,但不显示结果2.在struts.xml中定义动作包和动作属性说明name定义动作包的名字,唯一性namespace定义动作包的运行路径extends定义继承的父动作包•定义动作包:使用package标记,可以包含多个动作,常用属性如下:•例如:
……在url中跟在虚拟目录后面•例如:……•定义动作:使用action标记,在动作标记内包含子标记定义结果、异常等内容,常用属性如下:属性说明name指定客户端发送请求的地址映射名称class指定进行业务逻辑处理的动作类全限定性名称method指定动作类中进行业务逻辑处理的具体方法名称•例如:/input.jsp/welcome.jsp•定义动作结果:使用result标记,可以在一个标记对中使用一个或多个result标记为动作指定一个或多个视图,常用属性如下:属性说明name定义结果的逻辑视图名字type指定视图页面所采用的视图技术或结果类型与动作类的返回值一致常用结果类型:属性说明type常用结果类型dispatcher:默认结果类型,表示使用的视图技术是JSP,将请求转发给视图页面redirect:重定向到视图页面,参数不能传递redirectAction:动作转向结果类型,表示将访问转到其他动作chain:动作链结果类型,表示请求将转到一系列的其他动作进行处理freemark:表示使用freemark视图技术2.2在Struts2项目中应用控制组件•步骤:–①创建web项目–②将Struts2类包中的commons-logging-1.0.4.jar、freemarker-2.3.15.jar、commons-fileupload-1.2.1.jar、ognl-2.7.3.jar、struts2-core-2.1.8.1.jar、xwork-core-2.1.6.jar添加到工程的构造路径中•步骤:(接上)–③在web.xml文件中设置核心控制器–④创建一个扩展com.opensymphony.xwork2.ActionSupport的动作类,保存目录为action–⑤创建结果显示JSP文件,保存目录为WebRoot–⑥创建struts.xml,在其中定义动作包、动作等内容,保存目录为src示例一:动作包的动作对应单个结果•③在web.xml中设置核心控制器:•④创建一个扩展ActionSupport的动作类•⑤创建一个结果显示JSP文件:•⑥创建struts.xml:属性name和type值分别是什么?执行结果:action表示什么?示例二:动作包的...