Ich möchte einen serverseitigen Validierungscode schreiben, um alle Benutzereingaben auf meiner Seite zu überprüfen. Ich möchte alle diese serverseitigen Validierungen von der Präsentationsschicht behalten. Jetzt schaue ich mir an, eine Komponente zu erstellen und alle Validierungsfunktionen darin zu behalten. Ich werde <cfinvoke>
Tag verwenden, um auf die Validierungsmethoden auf meiner Benutzerseite zuzugreifen. Aber das Problem ist, ich muss Validierung für etwa 50 Benutzereingaben anwenden und müssen <cfinvoke>
Tag 50 Mal verwenden. Kann mir jemand sagen, dass die Verwendung von <cfinvoke>
oft die Leistung beeinträchtigt oder gibt es einen anderen besseren Ansatz, mit dem ich gehen kann?Verwenden von <cfinvoke> in ColdFusion
2
A
Antwort
3
Es gibt keinen sichtbaren Overhead mit <cfinvoke>
. Aber ich würde dir trotzdem empfehlen, es hier zu vermeiden. Stattdessen betrachten diese (Beispiel):
Validator.cfc
<cfcomponent>
<cffunction name="validateX" access="public" ...>
...
</cffunction>
<cffunction name="validateY" access="public" ...>
...
</cffunction>
<cffunction name="validateZ" access="public" ...>
...
</cffunction>
</cfcomponent>
controller.cfm
<cfset validator = new Validator()>
<cfset validator.validateX(...)>
<cfset validator.validateY(...)>
<cfset validator.validateZ(...)>
...
Jetzt können Sie leicht mit dem Prüfungsergebnis arbeiten.
Wenn Sie Rückkehr boolean:
<cfif validator.validateX(...)>
...
<cfelse>
...
</cfif>
Wenn Sie ein Array mit Fehler zurück:
<cfset errors = []>
<cfset errors.addAll(validator.validateX(...))>
<cfset errors.addAll(validator.validateY(...))>
<cfset errors.addAll(validator.validateZ(...))>
usw.
<cfinvoke>
eine Instanz der Klasse erzeugt (new Validator()
) und ruft die Methode validateX(...)
auf die gleiche Weise. Der Hauptunterschied besteht darin, dass die Instanz auf jeder <cfinvoke>
neu erstellt wird und die Rückgabe als Eingabevariable (returnVariable
) angegeben werden muss, was in den meisten Fällen mühsam ist.
Verwandte Themen
- 1. Verwenden von JSON in ColdFusion-Anwendung
- 2. Maven für Coldfusion-Projekt verwenden
- 3. Wann sollte ich # in ColdFusion verwenden?
- 4. Coldfusion: <cfpdf> tag error
- 5. Wie verwenden Sie CFThread in ColdFusion-Anwendungen?
- 6. Übergeben von Argumenten an Konstruktoren, die CreateObject in Coldfusion verwenden
- 7. Art von cfcatch in ColdFusion
- 8. C# von ColdFusion aufrufen
- 9. ColdFusion EncodeForHTML und Zeilenumbrüche
- 10. Einfügen von Datetime in MSSQL von Coldfusion
- 11. Verwenden von <initializer_list> in C++
- 12. ColdFusion 9 Datumsvalidierung?
- 13. Schreiben Traits in Coldfusion
- 14. ColdFusion Builder und Remote-ColdFusion-Server
- 15. Migration von ColdFusion MX7 auf ColdFusion 9. Probleme?
- 16. Verwenden <in django Vorlage
- 17. Base64-Decodierungsfehler in Coldfusion
- 18. ColdFusion-Abfrageausgabe?
- 19. CFToken/CFID in Coldfusion 11
- 20. Coldfusion: Formatierung von createDate() Ausgabe
- 21. Aufruf einer .jar von ColdFusion
- 22. Verbinden von zwei Arrays in ColdFusion
- 23. Ausgabe von HTML aus XML in ColdFusion
- 24. Anzeigen einer Liste von Sperren in Coldfusion
- 25. NULL-Wert in MySQL einfügen, von Coldfusion
- 26. Korrekte Verwendung von OR in Coldfusion
- 27. ColdFusion ListAppend
- 28. Verwendung von MongoDB mit ColdFusion
- 29. AJAX-Anfrage in ColdFusion
- 30. NTLM-Authentifizierung in ColdFusion
Danke Alex. Kannst du den Unterschied zwischen und deinem Weg erklären? Ich bin neu in der kalten Fusion. Dein Weg scheint lesbarer zu sein. –
Es funktioniert. Es hat mir gefallen –
Wird dieser Ansatz bei der kalten Fusion 9 funktionieren? –