DefaultAction

本文详细解析了在Struts2框架中如何通过<default-action-ref>元素配置默认action,使得在访问根目录下未找到具体action时,能够自动跳转到指定的默认action,如index.action。并通过示例展示如何在配置文件中实现这一功能。

在package当中定义<default-action-ref name="index"></default-action-ref>

作用:当别人访问namespace="/"的时候,如果找不到对应的action,默认的就用index.action

eg:url:http://localhost:8080/struts2/login 很显然在namespace=“/”下面没有login.action,所以就会使用默认的action

<?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" />
    
    <package name="default" namespace="/" extends="struts-default">
    	<default-action-ref name="index"></default-action-ref>
    	<action name="index">
    		<result>/default.jsp</result>
    	</action>
    </package>
</struts>

 

/* * brief Obj struct for InternetGatewayDevice.X_TP_IPv6Firewall. * OID_IP6_FIREWALL 160 */ typedef struct { CMM_OID _oid; /* for internal use only */ UBOOL8 enable; /* Enable */ UINT8 defaultAction; /* DefaultAction */ UBOOL8 enableIpv6SpiFirewall; /* EnableIpv6SpiFirewall */ } IP6_FIREWALL_OBJ; /* * fn CMM_RET rsl_initIp6FirewallObj(const DM_NUM_STACK *pNumStack, * const IP6_FIREWALL_OBJ *pNewObj) * brief Init "IGD.X_TP_IPv6Firewall."(OID_IP6_FIREWALL) object * * param[in] pNumStack - The stack of the object that we want to init * param[in] pNewObj - The value of the object that we want to init * * return CMM_RET * * note 1, set default rule if firewall is enable. * 2, insert all enable rule to rule hook if firewall is enable. * 3, timing controller is started by IPv4 Firewall, * IPv6 Firewall uses the same one, not start a new controller here. */ CMM_RET rsl_initIp6FirewallObj(const DM_NUM_STACK *pNumStack, const IP6_FIREWALL_OBJ *pNewObj) { CMM_RET ret = CMM_OK; CASSERT((pNumStack != NULL) && (pNewObj != NULL)); //oal_initIp6FirewallObj(); //move it to ipt_init to create all tables at the init time. if (TRUE == pNewObj->enable) { oal_fw6_setFwEnabeld(TRUE); /* insert all enable rules */ if ((ret = rsl_fw6_setAllRules(TRUE, FALSE)) != CMM_OK) { CDBG_ERROR("Init rule table failed, ret = %d", ret); return ret; } } else { oal_fw6_setFwEnabeld(FALSE); } /* alter default action */ if (TRUE == pNewObj->enable && (ret = oal_fw6_setDefaultAction(pNewObj->defaultAction)) != CMM_OK) { CDBG_ERROR("Init default action failed, ret = %d", ret); return ret; } /* newUI 2.0: init ipv6 spi firewall */ if ((ret = oal_fw6_setSpiFirewall(pNewObj->enableIpv6SpiFirewall)) != CMM_OK) { CDBG_ERROR("Init ipv6 spi firewall failed, ret = %d", ret); return ret; } return CMM_OK; }解析代码
11-12
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值