struts之action类
来源:互联网 发布:软件结构图设计软件 编辑:程序博客网 时间:2024/05/01 17:14
Action类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后,ActionServlet会为这个请求选择适当的Action
- 如果需要,创建Action的一个实例
- 调用Action的perform()方法
如果ActionServlet不能找到有效的映射,它会调用默认的Action类(在配置文件中定义)。如果找到了ActionServlet将适当的ActionMapping类转发给Action,这个Action使用ActionMapping找到本地转发,然后获得并设置ActionMapping属性。根据servlet的环境和被覆盖的perform()方法的签名,ActionServlet也会传送ServletRequest对象或HttpServletRequest对象。
所有Action类都扩展org.apache.struts.action.Action类,并且覆盖类中定义的某一个perform()方法。有两个perform()方法:
处理非HTTP(一般的)请求:
public ActionForward perform(ActionMapping action,AcionForm form,ServletRequest request,ServletResponse response)throws IOException,ServletException
处理HTTP请求:
public ActionForward perform(ActionMapping action,AcionForm form,HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
Action类必须以“线程安全”的方式进行编程,因为控制器会令多个同时发生的请求共享同一个实例,相应的,在设计Action类时就需要注意以下几点:
- 不能使用实例或静态变量存储特定请求的状态信息,它们会在同一个操作中共享跨越请求的全局资源。
- 如果要访问的资源(如JavaBean和会话变量)在并行访问时需要进行保护,那么访问就要进行同步。
Action类的方法
除了perform()方法外,还有以下方法:
可以获得或设置与请求相关联的区域:
public Locale getLocale(HttpServletRequest request)public void setLocale(HttpServletRequest request,Locale locale)
为应用程序获得消息资源:
public MessageResources getResources()
检查用户是否点击表单上的“取消”键,如果是,将返回true:
public Boolean isCancelled(HttpServletRequest request)
当应用程序发生错误时,Action类能够使用下面方法存储错误信息:
public void saveErrors(HttpServletRequest request,ActionErrors errors)
ActionError实例被用来存储错误信息,这个方法在错误关键字下的请求属性列表中存储ActionError对象。通过使用在struts标记库中定义的自定义标记,JSP页能够显示这些错误信息,稍后我们就介绍。
- Struts之Action类
- struts之action类
- Struts详解之Action类
- Struts之二 Action类
- Struts 2 之Action类详解
- Struts Action 之 method
- struts之action mappings
- struts之action配置
- Struts之Action对象
- 【Struts】Action 2 action类
- Struts 学习笔记之Action
- Struts 学习笔记之Action
- struts项目之Action(三)
- Struts 学习笔记之Action
- STRUTS系列之 Action配置
- Struts的Action类
- struts中的action类
- Struts之Action(Action继承类、实现接口、访问servlet API方法)
- javassist学习
- Python之%s%d%f
- 五星填数
- Struts2--5.后台校验
- ACM程序设计书上题目Z
- struts之action类
- Java设计模式之观察者模式(Observer)
- LeetCode(4)
- 【DRP】笔记之CSS
- 求阶乘的两种方法
- 获取文件路径
- C++三木运算符(? : )
- String操作
- 基于NIOS-II的示波器:PART2 界面动态显示功能