02Struts2配置详解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Struts 2 Action 2-2
/user!register.action /user!login.action
动态方法调用
作用:减少Action数量 public class UserAction implements Action { 调用UserAction的register()方法 调用UserAction的login()方法 … 使用:actionName!methodName.action public String login() { … 禁用:将属性strutsenableDynamicMethodInvocation设臵为 } false public String register() { … } <action name="user" class="erAction"> } <result name="login">/page/manage.jsp</result> <result name="register">/page/success.jsp</result> <result name="login_input">/page/login.jsp</result> <result name="register_input">/page/register.jsp</result> <result name="error">/page/error.jsp</result> </action> 演示示例:动态方法调用
第二章
Struts2配臵详解
回顾与作业点评
使用Struts 2 开发程序的基本步骤是什么?
Struts 2中如何获取Servlet的session对象? Struts 2 表单标签和普通HTML表单标签有什么 不同之处?
本章目标
掌握Struts 2的基本架构 掌握struts.xml中的各项内容 掌握action元素与result元素的配臵 掌握Struts 2中文乱码的解决
Struts 2 Action 2-3
public class UserAction implements Action { /register.action /login.action … method属性 public String login() { … 优点:避免动态方法调用的安全隐患 } 调用UserAction的register()方法 调用UserAction的login()方法 public String register() { 缺陷:导致大量的Action配臵 … <action name="login" } class="erAction" method="login"> } <result>/page/manage.jsp</result> <result name="input">/page/login.jsp</result> <result name="error">/page/error.jsp</result> </action> <action name="register" class="erAction" method="register"> <result>/page/success.jsp</result> <result name="input">/page/register.jsp</result> <result name="error">/page/error.jsp</result> </action> 演示示例:使用method属性
加载顺序
struts-default.xml—>struts-plugin.xml —>struts.xml
练习——中文乱码解决
需求说明:
解决中文乱码问题
提示:
<constant name="struts.i18n.encoding" value="UTF-8">完成时间:10分钟源自Struts 2配置文件2-2
struts.xml
constant元素
配臵常量,可以改变Struts 2框架的一些行为 name属性表示常量名称,value属性表示常量值
… <struts> <constant name="struts.i18n.encoding" value="UTF-8"/> <constant name="struts.ui.theme" value="simple"/> <package name="" namespace="" extends=""> <action name="" class=""> <result name=""></result> </action> </package> </struts>
Struts 2基本结构2-1
租房网登录程序运行流程图
login.jsp
核心控制器
Action
Result
manager.jsp
Struts 2基本结构2-2
核心控制器
需要在web.xml中进行配臵 对框架进行初始化,以及处理所有的请求
<filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter. StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> Struts 2.0版本的核心控制器为 org.apache.struts2.dispatcher.FilterDispatcher
<struts> <package name="default" extends="struts- default“> <default-action-ref name="defaultAction"/ > <action name="defaultAction" class="erAction method="defaultMethod" > <result>/error.jsp</result> </action> </package> </struts> 如果请求的Action不存在, 将转发到error.jsp
… <struts> <constant name="" value=""/> <package name="default" namespace="/" extends="struts-default"> <action name="" class=""> <result name=""></result> </action> </package> </struts> 除非有令人信服原因,自定义的包应该总是扩展struts-default包
Struts 2基本结构2-4
Result
作用:调度视图以哪种形式体现给客户端(Action处理结 束后,系统下一步将要做什么) name属性表示result逻辑名,result元素的值指定对应 的实际资源位臵
… <struts> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="cn.jbit.hrent.action.LoginAction"> <result name="success">/page/manage.jsp</result> <result name="input">/page/login.jsp</result> <result name="error">/page/error.jsp</result> </action> </package> </struts>
/loginUser.action
/registerUser.action 演示示例:使用通配符配置Action
Struts 2 Action 2-5
配臵默认Action
如果没有一个Action匹配请求,默认Action将被执行 通过<default-action-ref … />元素配臵默认Action
Struts 2基本结构2-3
Action
开发Action
实现Action接口 继承ActionSupport类 普通的Java类
配臵Action
… <struts> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="cn.jbit.hrent.action.LoginAction"> <result name="success">/page/manage.jsp</result> <result name="input">/page/login.jsp</result> <result name="error">/page/error.jsp</result> </action> </package> </struts>
Struts 2 Action 2-4
通配符(*)的使用
另一种形式的动态方法调用
<action name= "*User" class="erAction" method="{1}"> <result>/page/{1}_success.jsp</result> <result name="input">/page/{1}.jsp</result> <result name="error">/page/error.jsp</result> </action> method="login" /page/login_success.jsp /page/login.jsp method=“register" /page/register_success.jsp /page/register.jsp
Struts 2配置文件2-4
struts-default.xml
Struts 2默认配臵文件,会自动加载 struts-default包在struts-default.xml文件中定义
struts-plugin.xml
Struts 2插件使用的配臵文件 如果不开发插件,不需要编写该配臵文件
Struts 2配置文件2-3
struts.xml
package元素
包的作用:简化维护工作,提高重用性 包可以“继承”已定义的包,并可以添加自己包的配臵 name属性为必需的且唯一,用于指定包的名称 extends属性指定要扩展的包 namespace属性定义该包中action的命名空间 ,为可选属性
Struts 2配置文件2-1
struts.xml
核心配臵文件,主要负责管理Action 通常放在WEB-INF/classes目录下,在该目录下的 struts.xml文件可以被自动加载
… <struts> <constant name="" value=""/> <package name="" namespace="" extends=""> <action name="" class=""> <result name=""></result> </action> </package> </struts>
Struts 2 Action 2-1
Action的作用
封装工作单元 数据转移的场所 返回结果字符串
public class HelloWorldAction implements Action { private String name = ""; private String message = ""; public String execute() { this.setMessage("Hello,"+this.getName()+"!"); return SUCCESS; } //...省略setter/getter方法 }
相关文档
最新文档