Używamy Coldfusion 9.Jak pobrać bieżącą wartość enablecfoutputlyly?
Czy istnieje prosty sposób sprawdzenia, czy w przypadku konkretnego żądania została ustawiona prawda?
Używamy Coldfusion 9.Jak pobrać bieżącą wartość enablecfoutputlyly?
Czy istnieje prosty sposób sprawdzenia, czy w przypadku konkretnego żądania została ustawiona prawda?
nie mogę przetestować z CF9 teraz, ale w CF10 jest dostępny z getPageContext()
zaznaczając obiekt wyjściowy:
<cfscript>
out = getPageContext().getOut();
// Is the cfsetting enablecfoutputonly value currently true?
isSettingEnabled = out.getDisableCount() > 0;
WriteOutput("isSettingEnabled="& isSettingEnabled &"<br>");
// Is output currently allowed?
isOuputtingEnabled = out.getDisableCount() == 0 || out.getOutputCount() > 0;
WriteOutput("isOuputtingEnabled="& isOuputtingEnabled &"<br>");
</cfscript>
.. lub przy użyciu odbicia:
<cfscript>
out = getPageContext().getOut();
internalMethod = out.getClass().getDeclaredMethod("isOutputEnabled", []);
internalMethod.setAccessible(true);
isOuputtingEnabled = internalMethod.invoke(out, []);
// is output currently allowed?
WriteOutput("isOuputtingEnabled="& isOuputtingEnabled);
</cfscript>
Mogę potwierdzić, że przynajmniej ta pierwsza opcja działa na CF 9.0.1 (nie sprawdzałem tego ostatniego, ponieważ wygląda na to, że wymaga dodatkowej pracy bez żadnego zysku). –
NB (nie to musi mieć znaczenie): to * nie * działa na Railo, ponieważ 'getDisableCount()' i 'getOutputCount()' nie są zaimplementowane. –
Ktoś wie różnicę między getDisabledCount() i getOutputCount()? –
Ustaw go na true, to wiesz na pewno, że zostało ustawione na prawdziwe? ; o) –
Chciałbym to również poznać. Pytanie pojawiło się gdzieś indziej (a może jeszcze jedno pytanie tutaj, nie pamiętam) miesiąc temu i spędziłem najlepszą część dnia próbując dowiedzieć się, jak to wykryć, i narysowałem pustkę. Jeśli jest nigdzie, znajdzie się gdzieś w obiekcie getPageContext(). –
Myślę, że możesz uzyskać wartość bufora (Ben Nadel ma wpis na blogu), a następnie dodać coś bez użycia cfoutput, a następnie sprawdzić, czy bufor się zmienił? (Nie mam czasu na eksperymentowanie w tej chwili.) –