`
zengshaotao
  • 浏览: 754226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts1简单纪要

 
阅读更多

1.struts 基于mvc,处于展现层,hibernate是持久层的框架。

domain model  财务领域,具体可以理解为javabean对象。
只有状态没有行为的,称为贫血模型。

pattern 模式,有代码级别的模式,也有架构上的模式(rbac)

framework 框架,提供基础性的设施,一般提供给开发者。使得开发比较规范

2.struts处于表示层,业务层是spring。dwr,ext等ajax框架。000年或者01年就出现

3.相对路径。重定向不会共享request的数据,因为会发生重复请求。

4.request.getRequestDispatch("/a/b/c.jsp");表示从应用名称的路径下开始,也就

是上下文名称。

servlet。拿到表单数据,调用业务逻辑,再转向。配置在web.xml的访问路径的第一个

斜线表示到根目录,即到应用的目录,webappName。但是对于jsp页面的访问路径里,

斜线表示到端口的地址。不包括应用名。

5.流程分析,序列图的分析。

6.mvc 分为面向请求驱动的,也有面向事件驱动的。
前端servlet会获得请求,截取url,找到配置的action进行分发。

先将表单的数据放到map里,然后再初始化formbean.然后会执行默认的验证。

11 actionconfig对应的是struts的配置文件。收集完数据之后会进行validate验证。

action在1中是单实例的,因为配置的所有action都在map里,且都放在了同步块中

13.reset方法在请求表单数据收集之前调用。配置文件的action配置里,validate属性

的默认值是true,也就是数据收集的时候会执行validate方法。bean:write name属性

表示对象名称,property表示对象的具体属性。这里支持对象属性的导航。
name=“user” property="group.name"

20.jstl一般包括自身标签库,以及el表达式。两者一般联合起来使用,才能更能发挥

作用。el可以单独使用的。

21.el表达暂时还没有循环。需要借助jstl标签才能处理循环的数据。对运算符也有很

好的支持。choose when otherwise 相当于if--else。至少有一个when。最多有一个

otherwise。 新new的arraylist。 when empty listName==true。
集合是个map的话,直接使用变量.key,变量.value.因为标签对应的java代码里有相应

的get和set方法。

27.c:import,相当于jsp的include标签。

c:url一般和c:param标签一起使用,作用就是组装类似于地址栏参数的url。


29,jstl自定义函数,要在web-info下对照原有的tld文件,自定义一个tld文件,页面

使用时需要在使用的页面引入tld,后天处理的class的方法必须似乎public static的
对于自定义jstl标签,都是先在后台处理的。

30.动态验证框架和国际化结合紧密。

对于checkbox,没有勾选,则getParameter,得到的是null。

ActionServlet初始化的时候可以做很多事情,包括转换器的注册。需要实现Converter

接口,实现里面的converter方法。转换器初始化到了map里。也可以通过plugin的形式

ActionForm中尽量用基本类型,用复杂类型就需要自己写像上述一样的转换器了。

运行期不能修改Struts-config.xml文件的内容,也就是不能重新设置ActionForward的

配置内容(静态的不能修改)。动态的可以修改,也就是自己new一个ActionForward,

然后设置相关的转向信息。

return null;表示不用struts作转向。

struts-config.xml文件中,每个<action>标签对应一个ActionMapping实例

可以不用配type,也就是根据页面的请求直接转向配置的页面
访问不存在的action,会出现404,有些不友好。这个时候需要自己新构建一个action

,然后配置一个unkown=true。源码里存在action,就return mapping,如果没有才会

进行到unkown属性的处理。

action里也有forward属性(不是标签),这个是和type属性互斥的,源码里先处理

forward属性的,配置的话就直接return,不会进行到下面的action处理。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics