在FW / 1上哪里是用分号拦截动作的好地方

时间:2013-10-11 20:46:22

标签: coldfusion fw1

我想确保看起来像这样的请求:

index.cfm?action = main.data; a = 1; b = 2不会崩溃。现在正试图

enter image description here

这是Is it possible to access the matrix parameters (name-value pair separated by semicolon) in ColdFusion?

的后续行动

在FW / 1上哪里是用分号拦截动作的好地方?

1 个答案:

答案 0 :(得分:0)

Matrix params适用于请求uri,而不是查询字符串。如果它们出现在问号之后,它们就不是矩阵参数,所以你问的直接问题实际上没有意义,(因为你有一个无效/腐败的动作变量,因此无论你尝试什么,都可能这是错误的方式 - 但没有更多的细节,很难建议一个更好的方法。)

更通用的“如何在FW / 1选择之前修改操作值? 的答案是:在调用setupRequestDefaults之前,这意味着在调用onRequestStart之前,这意味着用您自己的版本覆盖FW / 1版本,类似......

function onRequestStart ( string targetPath )
{
    var ActionVar = variables.framework.action;

    if ( StructKeyExists(Url,ActionVar) ) Url[ActionVar] = fiddleWithAction(Url[ActionVar]);
    if ( StructKeyExists(Form,ActionVar) ) Form[ActionVar] = fiddleWithAction(Form[ActionVar]);

    super.onRequestStart( argumentcollection=arguments );
}

fiddleWithAction是一个执行任何需要的函数(在这种情况下,ListFirst(string,';')会这样做。)

但同样,这很可能不是实现你想要做的任何事情的最好方式。