struts 2总结

struts2 的主要作用是替代了servlet,之前通过servlet处理的消息现在通过定义的action(和链接匹配对应的各种方法)进行处理,它通过在web.xml配置自己的过滤器,将前端到来的请求拦截后进行处理。拦截器配置:

<web-app>

   <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

主要机制:通过struts.xml中的配置,让前端请求和定义的action方法绑定,配置如下:
 
<struts>  

  <package name="three" namespace="/file" extends="struts-default">
      <action name="upload" class="com.UploadAction"  method="execute">
   <result name="success" type="dispatch">/login.jsp</result>
   </action>
  </package></struts>
解释:
  package:struts2使用package来组织模块
  namespace:对action 进行逻辑的划分,如果namespace不为空则前端访问时action前需要加上namespace,如http://localhost:8080/file/upload
  extends:当前包继承哪个包,继承的,即可以继承其中所有的配置,默认继承struts-default,
  action :对应一个action,name表示前端的请求如:http://localhost:8080/file/upload,
  class:表示action所在的类
  method:表示action绑定的方法名,默认为:exceute 可不显示显出
  result:name 方法的返回值默认为success可不显示写出 type:结果执行类型,默认dispatch(转发) redirect(重定向) redirectAction(重定向到一个action) chain(转到一个action)

在action中通过
ServletActionContext类中的方法可以获取servlet的一些对象,并获取页面信息
struts2对页面传递过来的数据可以很好的读取:
  如果是普通的public类变量如果名字和页面传递过来的一致则strut2会自动的为变量赋值 ,非public 变量则需要生成set方法
  如果是对象,则表单的数据名称要以定义的(对象.对象变量名)的方式传递到action中并且action中需要生成该对象的get和set方法
  

参考:http://blog.sina.com.cn/s/blog_76b2c48101019rf7.html
 
 

猜你喜欢

转载自www.cnblogs.com/lgs-star/p/struts2.html