2013-10-11 3 views
0

я хочу, чтобы убедиться, что запросы, которые выглядят как:На FW/1, где это хорошее место для перехвата действий с запятой

index.cfm действие = main.data; а = 1, б = 2 делает не сбой. Сейчас он пытается

enter image description here

Это следовать до Is it possible to access the matrix parameters (name-value pair separated by semicolon) in ColdFusion?

На FW/1, где есть хорошее место для перехвата действий с запятой?

ответ

0

Матричные параметры применяются к запросу 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,';') сделал бы это).

Но опять же, это, скорее всего, не лучший способ достичь того, что вы пытаетесь сделать.