Struts2_学习笔记(五)----访问Web元素、include、默认Action、Action总结
来源:互联网 发布:淘宝冈本旗舰店 假货 编辑:程序博客网 时间:2024/05/14 16:34
一、访问Web元素(参考Struts2_1200_AccessWebElements)
Struts2提供机制访问session、request、application
取Map类型request,session,application
1) 直接取session、request、application(较少使用)
代码如下:
public class LoginAction1 extends ActionSupport { private Map request; private Map session; private Map application; public LoginAction1() { request =(Map)ActionContext.getContext().get("request"); session = ActionContext.getContext().getSession(); application = ActionContext.getContext().getApplication(); } public String execute() { request.put("r1", "r1"); session.put("s1", "s1"); application.put("a1", "a1"); returnSUCCESS; } }
2)使用DI(dependencyinjection—)依赖注入)或者称为IoC (inverse of control—)控制反转)----(经常使用)
Action类分别实现RequestAware,SessionAware, ApplicationAware接口,并实现相应的setXXX()方法
代码如下:
public class LoginAction2 extends ActionSupport implementsRequestAware,SessionAware, ApplicationAware { private Map<String, Object> request; private Map<String, Object> session; private Map<String, Object> application; public String execute() { request.put("r1", "r1"); session.put("s1", "s1"); application.put("a1", "a1"); returnSUCCESS; } @Override publicvoid setRequest(Map<String, Object> request) { this.request = request; } @Override publicvoid setSession(Map<String, Object> session) { this.session = session; } @Override publicvoid setApplication(Map<String, Object> application) { this.application = application; } }
取真实类型HttpServletRequest,HttpSession, ServletContext的引用:
1)直接直接取session、request、application(较少使用)
代码如下:
public class LoginAction3 extends ActionSupport { private HttpServletRequest request; private HttpSession session; private ServletContext application; public LoginAction3() { request = ServletActionContext.getRequest(); session = request.getSession(); application = session.getServletContext(); } public String execute() { request.setAttribute("r1", "r1"); session.setAttribute("s1", "s1"); application.setAttribute("a1", "a1"); returnSUCCESS; } }
2) 使用DI(dependencyinjection)或者称为IoC (inverse of control)----(较少使用)
代码如下:
public class LoginAction4 extends ActionSupport implementsServletRequestAware { private HttpServletRequest request; private HttpSession session; private ServletContext application; public String execute() { request.setAttribute("r1", "r1"); session.setAttribute("s1", "s1"); application.setAttribute("a1", "a1"); returnSUCCESS; } @Override publicvoid setServletRequest(HttpServletRequest request) { this.request = request; this.session = request.getSession(); this.application = session.getServletContext(); } }
二、include(参考Struts2_1300_IncludeModules)
可以将其他的xxx.xml包含到struts.xml中,其意义在于项目开发时,各个模块的配置文件可以单独编写,再最后的联调时,将所有的xml包含到struts.xml中,struts.xml中只进行公共的配置。
<include file="login.xml"/>
三、默认Action(参考Struts2_1400_DefaultAction)
在<package>中添加默认Action配置
<default-action-refname="index"></default-action-ref>
四、Action总结
1) 实现一个Action的最常用方式:从ActionSupport继承
2) DMI动态方法调用 !
3) 通配符配置 * {1} {2} …
4) *_*
5) 接收参数的方法(一般用属性或者DomainModel来接收)
6) 简单参数验证addFieldError
一般不使用Struts2的UI标签
7) 访问Web元素
a)Map类型
IoC
依赖Struts2
b)原始类型
IoC
依赖Struts2
8) 包含文件配置
9) 默认action处理
- Struts2_学习笔记(五)----访问Web元素、include、默认Action、Action总结
- Struts2_学习笔记(五)----访问Web元素、include、默认Action、Action总结
- Action访问web元素
- Struts2_学习笔记(二)--------Namespace、Action、Path、ActionMethod_DMI、ActionWildcard
- Struts2_学习笔记(二)--------Namespace、Action、Path、ActionMethod_DMI、ActionWildcard
- Struts2_访问Web元素
- Struts2_访问Web元素
- 【web开发学习笔记】Structs2 Action学习笔记(四)include的使用
- Struts2学习(五)访问web元素总结
- 4种访问web元素的action
- struct2 访问WEB元素(request,session, application......)——分模块配置——默认Action
- Struts2_学习笔记(九)----bbs2009、声明式的异常处理、default-action-ref(BUG)
- Struts2_学习笔记(三)--------Action接收参数的四种方法
- Struts2_学习笔记(三)--------Action接收参数的四种方法
- strtus2学习总结之Action中访问Web资源
- struts2学习笔记(六) Action访问web资源的方式
- struts2学习笔记(2)---Action中访问ServletAPI获取Map类型的Servlet元素
- struts2学习笔记(3)---Action中访问ServletAPI获取真实类型的Servlet元素
- c#利用反射Assembly 对类和成员属性进行操作
- 算法与数据结构 之数组(三) 趣味算法
- 计算机老师的烦恼(一)
- C 和 Java 中sleep和yield的妙用
- Strust2_学习笔记(四)----中文问题、数据校验
- Struts2_学习笔记(五)----访问Web元素、include、默认Action、Action总结
- Java线程:线程的调度-休眠
- C#中的可空数据类型
- [第二节]C++ 引用 函数调用作为左值 用const限定引用 返回堆中变量的引用
- 深入理解C语言指针的奥秘
- Socket编程: 使用简单线程池为Socket客户端服务
- 求100以内素数
- 汗涔涔
- Evolution3D下一阶段的任务