Struts1.x(三)
来源:互联网 发布:laravel路由源码 编辑:程序博客网 时间:2024/05/02 01:52
组件:
ActionServlet:继承于HttpServlet
Action:初始化不是在读取配置文件时(服务器启动时),而是用户第一次发出请求时。
每个Action只初始化一次。因为所有请求共享一个action实例,所以它是线程不安全的,我们使用时需注意。
注意不要使用实例变量和静态变量共享只是针对某个请求的数据。但利用实例变量可以设计计数器。
注意资源操作的同步性。(如:使用synchronized)
ActionMapping:对应配置文件中<action></action>中的内容,可以使用ActionMapping中的getName(),getPath()等方法获取。
其中setPath()等方法不让使用,在struts-config中已有配置时。
ActionForward:对应配置文件中<forward></forward>,内容有name逻辑转向路径和path物理转向路径。
redirect(boolean),true时表示HttpServletResponse.sendRedirect(),容器外跳转,绝对路径。
false时(默认)表示RequestDispatcher.forward(),容器内跳转,相对路径。
ActionForm:先查找Action,再查找Form,看Action配置中是否有name属性<action name=""></action>
根据范围和名字查找Form(范围Scope,默认为session,还有一个request)
没有找到则实例化一个Form(调用构造方法)并保存到一个范围内,如果有直接使用Form
填充Form前,先调用Reset方法使Form回到默认值
然后使用request.getParameter()从客户端取得参数赋给Form
如果<action validate="yes"></action>,则需要校验Form中的数据是否合法,在派发给Action以前
校验成功则派发请求到Action,并带上Form的消息。校验失败转向错误页面<action input="">中指定。
以上都是由ActionServlet完成。
MVC:
1.The Model: System State and Business Logic JavaBeans
2.The View: JSP Pages and Presentation Components
3.The Controller: ActionServlet and ActionMapping
注意事项:
ActionForm中的无参构造方法必须有。
ActionServlet调用Form中的setter方法是对应jsp页面中传入属性名(name中的值)的标准方法。如:name="studentName",Form中的setter方法必需是setStudentName(),和Form中的相应变量,setter方法中的变量无关。
- Struts1.x(三)
- (三)Struts1.x高级应用
- Struts1.x的三种action的比较(笔记)
- Struts1.x(一)
- Struts1.x(二)
- Struts1.x教程(三) Struts Taglib介绍
- Struts1.x 总结 (转)
- struts1.x初来乍到(二)
- struts1.x
- Struts1.x
- Struts1.x
- Spring整合Struts1.X的三种方法
- Spring整合Struts1.X的三种方法
- Struts1框架学习(三)--struts1的标签库
- Struts1.x系列教程(13):国际化
- Struts1.x 总结(很全面)
- FreeMarker技巧(与Struts1.X)
- Struts1.x系列教程(13):国际化
- 终于把windows media player 10 卸载了
- 使用Visual C#制作可伸缩个性化窗体
- Google Chrome First Look,人性化的设计
- 不用Hook也能实现方面快捷的换肤功能
- 手机探索者开发实录—代码产生器(上)
- Struts1.x(三)
- 混沌 IN C++::Argument Dependent Lookup
- [原创] TopCoder Arena 插件使用指南
- Themida [2.0.3.0] (03-Sep-2008)
- “心”言“心”语
- WinLicense [2.0.3.0] (03-Sep-2008)
- 新的工作开始
- 写在毕业后的一刻
- Visual C++ MFC 中常用宏的含义 [转载]