6月1日struts2

1.struts2框架的MVC是什么:
答: model : 数据模型 pojo;
    view  : jsp,html;
    controller: filter;
   
2.struts2的核心:
答: 数据部分: 属性驱动,模型驱动; valueStack,ognl;
流程部分: action的流程,拦截器的流程;

3.struts2中的一些配置的作用
1.在web中配置过滤器<filter>---->开启了struts2
  <filter>
<filter-name>struts2Filter</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
<filter-name>struts2Filter</filter-name>
<url-pattern>/*</url-pattern>
  </filter-mapping>
  
2.在struts.xml中配置<action> ----->使框架可以根据请求路径,匹配对应的<action>,
依据<action>中的class属性,利用反射机制,创建对象,调用方法  (IOC)

<package name="default" namespace="/" extends="struts-default">
<action name="struts2" class="com.itheima.action.Struts2Action" method="show"></action>

<action name="login" class="com.itheima.action.LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="failer">/failer.jsp</result>
</action>

    </package>

3.让action实现一些接口---->使框架可以利用动态代理,代理调用action的方法,
并在调用前做一些其他工作(AOP)

4.请求参数的获取:
1.属性驱动:添加属性get set方法; (赋值原理:猜测分析: proxy持有action的对象引用,proxy会遍历request中的属性,
同时在action中寻找set方法,如果有匹配的set方法,就会给相应的属性赋值,这样就完成了 '属性驱动'方式获得请
求参数我刚才试了一下在action中将get方法注释掉不影响请求参数值的获取,将set方法注释掉会影响请求参数值
的获取,    所以:proxy遍历请求参数,然后调用action的set方法赋值的思路目前来说是成立的;)

2.模型驱动:(目测是因为代理proxy实现 ModelDriven<User> 接口,然后action也实现 ModelDriven<User> 接口,覆盖了
接口中的getModel()方法,这个方法返回了 bean的对象,然后就可以将参数赋值给获得的bean对象,然后调用bean对象的
set方法,完成赋值;




5.路径跳转:
1.在action中的方法中添加一个String的返回值,与<action>中的<result>标签中的name属性匹配
1.<result>标签中配置:
<result name="方法返回值匹配" type="跳转方式">跳转路径</result>

6.action的创建:
1.创建一个pojo
2.创建一个 MyAction类 实现 Action接口
3.创建一个 MyAction类 继承 ActionSupport 类
1.ActionSupport类提供了: 表单校验,错误信息回显的方法 等;











猜你喜欢

转载自blog.csdn.net/weixin_36898943/article/details/80754565
今日推荐