struts学习笔记基本配置

Struts2  学习笔记

吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),经过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着可以做一些针对于自定义拦截器的实现来深化对Struts2的认识。此时,你已经达到企业中使用的级别了,接下来就可以玩一些SSh整合

一、基本配置
 1.web.xml配置

?
1
2
3
4
5
6
7
8
  < filter >
   < filter-name >struts2</ filter-name >
   < filter-class >org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</ filter-class >
  </ filter >
  < filter-mapping >
   < filter-name >struts2</ filter-name >
   < url-pattern >/*</ url-pattern >
  </ filter-mapping >

2.struts.xml
 默认放在src文件下

?
1
2
3
4
5
6
7
8
9
  <!--package 类似java的包:用区分不同的请求
   name:给包取的名字  (name属性为每个package设置一个唯一的标识,这个标识在所有的package定义中不能重复)
   
   namespace:与请求地址的对应,对于action配置进行逻辑划分
    namespace="/"  --http://localhost:8080/xxx/分部工程名/下的所有请求
    namespace="/yy"  --http://localhost:8080/xxx/yy分部工程名/下的所有请求
    
   extends: 通过使用extends,你可以指定本package继承另外一个package的所有的配置
  --!>
?
1
2
3
4
5
  < package  name = "my"  namespace = "/"  extends = "struts-default" >
   < action  name = "helloworld"  >
    < result >/index.jsp</ result >
   </ action >
  </ package >


 访问URL:localhost:8080/helloworld


 3.action类
  属性:name:是要处理的请求名
  class:请求名所有对应的处理类
  method:请求名所有对应的处理类中的方法(默认为excute)

  <action name="hello" calss="xxx.xxx.xxxxaction" method="execute">

  Struts2 中有3中方式
   a.普通java类,定义execute()方法
   public class xxxAction
   b.实现Action接口,重写execute()方法
   public class xxxAction implements  Action
   c.继承java类ActionSupport
   public class xxxAction extentds ActionSupport

   for example:

?
1
2
3
4
5
6
   public  class  MyDefineAction  extends  ActionSupport{
     @Override
     public  String execute()  throws  Exception {
      return  "success" ; //我们必须返回一个字符串给struts.xml识别
     }
    }

   对应struts2.xml 文件

?
1
2
3
4
5
< package  name = "my"  namespace = "/"  extends = "struts-default"  method = "execte" >
     < action  name = "hello"  class="xxx.xxx.xxx.MyDefineAction>
      < result  name = "success" >/index.jsp</ result >
     </ action >
    </ package >

 我们相应的可以在action中创建不同的method 实现不同的返回,到达不同的.jsp

 不同action:name对应不同的method  
  三种方式: 配置struts.xml中的 action
  a. 普通配置   域名为 http://localhost:8080/Test/register(login)

?
1
2
3
4
5
6
7
8
< package  name = "my"  namespace = "/"  extends = "struts-default" >
     < action  name = "login"   class = "com.yc.action.UserAction"  method = "login" >
      < result  name = "success" >login.jsp</ result >
     </ action >
     < action  name = "register"  class = "com.yc.action.UserAction"  method = "register" >
      < result  name = "success" >register.jsp</ result >
     </ action >
    </ package >

  b. 动态配置  url为:  http://localhost:8080/Test/user!register 

?
1
2
3
4
5
<!-- 动态配置 必要设置: struts.enable.DynamicMethodInvocation  value="true"--> 
    < action  name = "user"  class = "com.yc.action.UserAction02" >
      < result  name = "login_success" >/login.jsp</ result >  
      < result  name = "register_success" >/register.jsp</ result >
    </ action >

  c. 约定配置 采用通配符 url为:  http://localhost:8080/Test/user_register 

?
1
2
3
  < action  name = "*_*"  class = "com.yc.action.{1}Action"  method = "{2}" >
     < result  name = "success" >/{2}.jsp</ result >
    </ action >


  d.当在对应的action中没有匹配对result,那就到global-result去匹配

?
1
2
3
   < global-results >
    < result  name = "fail" >/index.jsp</ result >
   </ global-results >

 <!--注意:global-results这个标签只能放在package中action的前面-->

你可能感兴趣的:(struts)