0

我想确保请求看起来像:

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

在此处输入图像描述

这是对是否可以在 ColdFusion 中访问矩阵参数(以分号分隔的名称-值对)的后续操作?

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

4

1 回答 1

0

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

更一般的“如何在 FW/1 拾取它之前修改操作值?”的答案。是: beforesetupRequestDefaults被调用,这意味着 beforeonRequestStart被调用,这意味着用你自己的覆盖 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做任何需要做的事情(在这种情况下,aListFirst(string,';')会做)。

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

于 2013-10-11T21:46:28.617 回答