Struts2默认配置 & result结果定义 & struts2中ServletAPI获得

  1. Struts2默认配置
<struts>
    <!-- struts标签中有个属性是 namespace 默认值是"/" -->
    <package package="" enxtends="struts-default" namespace="">
        <!-- action 标签中有个属性是 class默认值是ActionSupport 
            method中{1} 是代表第一个*号的意思 可以多个*
        -->
        <action name="Action_*" class="" method="{1}">
            <!-- result 标签中有个属性是 name 默认值是"success" 
                        tpye默认值是:dispatcher 转发
            -->
            <result name="" type=""></result>
        </action>   
    </package>
</struts>
  1. struts2结果定义
<action name="Action_*" class="" method="{1}">
            <!-- 转发 -->
            <result type="dispatcher">/index.jsp</result>
</action>
<action name="Action_*" class="" method="{1}">
            <!-- 重定向 -->
            <result type="redirect">/index.jsp</result>
</action>
<!-- 完整写法-->
<action name="Action_*" class="" method="{1}">
            <!-- 重定向到Action完整写法 -->
            <result type="redirect">
                <!-- namespace:命名空间 -->
                <param name="namespace"></param>
                <!-- name:Action名称 -->
                <param name="actionName">Action_findAll</param>
            </result>
</action>
<!-- 简单写法 -->
<action name="Action_*" class="" method="{1}">
            <!-- 重定向到ActionAction简单写法 -->
            <!-- 如果重定向的Action和当前Action在同一个目录下面可以省略不写namespce -->
            <result type="redirect">/index.jsp</result>
</action>
<!-- 全局结果定义 -->
<global-result>
    <!-- 在全局结果定义中配上result就相当于在每个Action中配上了result -->
    <!-- 如果在同一个命名空间下可以省略不写namespace -->
    <result type="redirectAction">/index.jsp</result>
</global-result>

3.ServletAPI获得

在struts2中如何获取例如request|session|response|servletContext

//方式1:获得解耦API
public String execute() throws Exception {
        //获得解耦API

        //1.获得application域 Map
        Map<String, Object> application = ActionContext.getContext().getApplication();

        //2.获得request域 Map
        Map<String, Object> request = (Map<String, Object>) ActionContext.getContext().get("request");

        //3.获得session域 Map
        Map<String, Object> session = ActionContext.getContext().getSession();


        //向API添加键值对
        application.put("name", "application.....");
        request.put("name", "request.....");
        session.put("name", "session.....");

        return SUCCESS;
    }
//获得原生servletAPI
@Override
    public String execute() throws Exception {
        //获得元素ServletAPI

        //1.获得application域 Map
        ServletContext application = ServletActionContext.getServletContext();

        //2.获得request域 Map
        HttpServletRequest request = ServletActionContext.getRequest();

        //3.获得session域 Map
        HttpSession session = request.getSession();

        //向API添加键值对
        application.setAttribute("name", "application.....");
        request.setAttribute("name", "request.....");
        session.setAttribute("name", "session.....");

        return SUCCESS;
    }

注意事项

1.在页面接受的时候 不管你后台用的什么变量名字接受的时候统一用如下来接受
<body>
    request:${requestScope.name }<br/>
    application:${applicationScope.name }<br/>
    session:${sessionScope.name }<br/>
</body>
2.解耦获得是Map 赋值要使用put(K,V);赋值
  元素获得是对象 要使用setAttributr(K,V);赋值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值