Struts2配置详情

Struts2配置详情 

GPR原则:登录


     给用户看一眼   get    
用户填写登录信息,点击登录 post
页面跳转欢迎界面 redirect
*可以将核心过滤器看成是Action类的中央调度器。
2.Struts.xml 节点详细讲解
   namspace作用:隔离不同的命名空间下的逻辑同名的Action


  几个文件的执行顺序
  1.default.property
  2.struts-default.xml
  3.struts-plugin.xml
  4.struts.xml
  5.struts.property
  6.web.xml


3.常量配置
    <!--修改Struts.xml,不用重启容器-->
    <constant name="struts.devMode" value="true" />


4.动态方法调用(DMI Dynamic Mehtod Invocation) RMI Remote Method Invocation 远程方法调用
  当一个Action中有多个业务方法的时候,我们要向让客户端请求能匹配到对应的方法,我们现在的做法
  定义多个Action节点,我们又想到了,如果Action节点很多,维护起来很不方便。
   1.开启动态方法调用
   
   2.配置


   通过!访问方法      actionName!list   actionName!del(Action类中的真实方法)  可能会注入
缺点:
5.通配符 *_*  万象归终  四两拨千斤
使用一个节点 实现整个软件所有的Action  best prectice  约定由于配置






6.ResultType  结果类型
  dispatcher  普通转发到视图页面 (默认值) ->转发
  redirect   重定向到视图页面
  redirectAction 重定向到Action
  chain    转发到Action
  plainText
  转发到Action :type="chain"
   <result name="list" type="chain">
                <param name="actionName">userActionResultAdd</param>
                <param name="namespace">/</param>
            </result>



案例:

Action类:

package cn.happy.struts04;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by linlin on 2017/10/23.
 */
public class FirstAction  extends ActionSupport{

    public String list(){
        System.out.println("list");
    return "list";
    }
    public String del(){
        System.out.println("del");
        return "del";
    }
}

Struts-04 单独的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true"/>
    <!--动态方法调用 默认 true-->
   <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false"/>-->
    <package name="day-04" namespace="/" extends="struts-default">
        <action name="list" class="cn.happy.struts04.FirstAction" method="list">
            <result name="list">/day04/list.jsp</result>
        </action>
        <action name="del" class="cn.happy.struts04.FirstAction" method="del">
            <result name="del">/day04/del.jsp</result>
        </action>
    </package>
</struts>



案例2:

package cn.happy.struts05;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by linlin on 2017/10/23.
 */
public class FirstAction extends ActionSupport{

    public String list(){
        System.out.println("list");
    return "list";
    }
    public String del(){
        System.out.println("del");
        return "del";
    }
    public String add(){
        System.out.println("add");
        return "add";
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true"/>
    <!--动态方法调用 默认 true-->
   <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false"/>-->
    <package name="day-05" namespace="/" extends="struts-default">
        <action name="*_*" class="cn.happy.struts05.{1}" method="{2}">
            <result name="{2}">/day05/{1}/{2}.jsp</result>
        </action>

    </package>
</struts>



案例3:

Action从定向转发。。。。

package cn.happy.struts06;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import javax.xml.soap.SAAJResult;
import java.util.Map;

/**
 * Created by linlin on 2017/10/23.
 */
public class FirstAction extends ActionSupport{

    public String list(){
      Map<String,Object> request= (Map<String,Object>)ActionContext.getContext().get("request");
       request.put("uname","张三");
        System.out.println("list");
    return "list";
    }
    public String del(){
        System.out.println("del");
        return "del";
    }
    public String add(){
     Map<String,Object> request= (Map<String,Object>)ActionContext.getContext().get("request");
    Object uname=request.get("uname");
      System.out.println(uname);
    request.put("info","数据");
        System.out.println("add");
        return "add";
    }
}

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <constant name="struts.devMode" value="true"/>
    <!--动态方法调用 默认 true-->
   <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false"/>-->
    <package name="day-06" namespace="/" extends="struts-default">
        <action name="userActionResult" class="cn.happy.struts06.FirstAction" method="list">
            <result name="list" type="chain"><!--/day06/FirstAction/list.jsp-->
            <param name="actionName">userActionResultAdd</param>
                <param name="namespace">/</param>
            </result>
        </action>
    <action name="userActionResultAdd" class="cn.happy.struts06.FirstAction" method="add">

            <result name="add">/day06/FirstAction/add.jsp</result>
        </action>

    </package>
</struts>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值