我有一个ColdFusion函数"foo",它有三个args,后两个是可选的:
<cffunction name="foo" access="public" returntype="any">
<cfargument name="arg1" type="any" required="true" />
<cfargument name="arg2" type="any" required="false" default="arg2" />
<cfargument name="arg3" type="any" required="false" default="arg3" />
...
<cfreturn whatever />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
我想调用foo,传入arg1和arg3,但遗漏了arg2.我知道如果我使用函数调用这是可能的cfinvoke,但是这种语法真的很冗长和复杂.我试过这两种方法,都没有用:
<cfset somevar=foo(1, arg3=3) /> <!--- gives syntax error --->
<cfset somevar=foo(1, arg3:3) /> <!--- gives syntax error --->
Run Code Online (Sandbox Code Playgroud) 我在大多数项目和繁重的工作中使用CFEclipse,但有时我发现需要在项目范围之外的页面上快速修复,这在简单的文本编辑器中更容易实现.
我用谷歌搜索但似乎无法找到答案,所以无论是下载链接还是如何构建我自己的链接都会很棒.谢谢.
<cfloop query="GET_ALL_STUDENTS>
<cfif #student_id# is NOT NULL>
<!--- do something--->
</cfif>
</cfloop>
Run Code Online (Sandbox Code Playgroud)
上面是我如何循环我的cf查询返回null值,我想检查student_id是否为null.这是我尝试过但失败了.谁能告诉我一个更好的方法?
我正在努力教自己ColdFusion.
我有一个以这种格式从数据库进来的字符串:
domain.com
<br/>
www.facebook.com/facebookpage
<br/>
http://instagram.com/instagrampage
Run Code Online (Sandbox Code Playgroud)
它全部来自#getRacer.txtDescription#.此文本的格式将始终相同.
我需要将它分成3个变量.我试过这个(源自adobe网站上的例子)
<h3>ListToArray Example</h3>
<cfset myList = ValueList(getRacer.txtDescription)>
<p>My list is a list with <cfoutput>#ListLen(myList)#</cfoutput> elements.
<cfset myArrayList = ListToArray(myList,'<br/>')>
<p>My array list is an array with
<cfoutput>#ArrayLen(myArrayList)#</cfoutput> elements.
Run Code Online (Sandbox Code Playgroud)
我不知何故最终得到了数组中的11个项目.
谢谢
我使用两种不同版本的ColdFusion,ColdFusion 9并且两者ColdFusion 10都有所不同XSLT Processors.
ColdFusion 9在使用Apache Xalan时ColdFusion 10正在使用Saxon.
那么,是否有可能改变XSLT Processor?
要么
我们可以使用javax.xml.transform.TransformerFactory类切换到不同的处理器吗?
一直在查看我的前任代码,并经常查看"请求"范围的用法.该范围的适当用法是什么?
补充:使用SQL Server 2000和2005,因此必须同时使用它们.另外,value_rk不是数字/整数(错误:操作数数据类型uniqueidentifier对于min运算符无效)
当我不关心返回的其他列时,有没有办法做单列"DISTINCT"匹配?例:
**Table**
Value A, Value L, Value P
Value A, Value Q, Value Z
Run Code Online (Sandbox Code Playgroud)
我需要根据第一行(值A)中的内容返回其中一行.我仍然需要来自第二和第三列的结果(第二列实际上应该全部匹配,但第三列是唯一的键,我至少需要其中一个).
这是我到目前为止所得到的,尽管它显然不起作用:
SELECT value, attribute_definition_id, value_rk
FROM attribute_values
WHERE value IN (
SELECT value, max(value_rk)
FROM attribute_values
)
ORDER BY attribute_definition_id
Run Code Online (Sandbox Code Playgroud)
我在ColdFusion工作,所以如果有一个简单的解决方法,我也会对此持开放态度.我试图限制或"分组"第一列"值".value_rk是我的大问题,因为每个值都是唯一的,但我只需要一个.
注意:value_rk不是数字,因此这不起作用
更新:我有一个工作版本,它可能比纯SQL版本慢一点,但说实话,任何工作在这一点上都比没有好.它从第一个查询获取结果,执行第二个查询,但将结果限制为一个,并获取匹配值的匹配value_rk.像这样:
<cfquery name="queryBaseValues" datasource="XXX" timeout="999">
SELECT DISTINCT value, attribute_definition_id
FROM attribute_values
ORDER BY attribute_definition_id
</cfquery>
<cfoutput query="queryBaseValues">
<cfquery name="queryRKValue" datasource="XXX">
SELECT TOP 1 value_rk
FROM attribute_values
WHERE value = '#queryBaseValues.value#'
</cfquery>
<cfset resourceKey = queryRKValue.value_rk>
...
Run Code Online (Sandbox Code Playgroud)
所以你有它,在ColdFusion中明显选择一个列.任何纯SQL Server 2000/2005建议仍然非常受欢迎:)
我正常的插入一个表然后获取ID以便我可以插入到另一个表中的过程在MSSQL中是这样的:
DECLARE @transactionKey uniqueidentifier
SET @transactionKey = NEWID()
INSERT INTO transactions(transactionKey, transactionDate, transactionAmount)
VALUES(@transactionKey, '#transactionDate#', '#transactionAmount#')
DECLARE @transactionID int
SELECT @transactionID = transactionID
FROM transactions
WHERE transactionKey = @transactionKey
INSERT INTO transactionItems(transactionID, itemID, itemAmount)
VALUES(@transactionID, '#itemID#', '#itemAmount#')
SELECT @transactionID as transactionID
Run Code Online (Sandbox Code Playgroud)
我的问题是2部分.首先,这是最好的方法吗?我读到GUID有可能在我身上发生变化,我最终在第二个表中出现了无效的GUID.我假设这个机会非常渺茫,我多年来一直在各种项目上做这件事并且从来没有遇到过问题.
我的问题的第二部分是在MySQL中做这样的工作吗?我开始使用MySQL开发一个新项目,我不确定最好的方法.我通常只在MSSQL上工作过.
我在这个新项目上使用CF9和MySQL.
对此的任何帮助都会很棒.
提前致谢.
我正在使用Hibernate 4.0和Coldfusion 8与Jrun,遗憾的是已经包含了log4j,我无法将其删除,并且log4j的版本太旧(没有跟踪).因此Hibernate无法正常工作.我想强制Jboss Logging使用SLF4j,我已经为自定义log4j添加了绑定.
在Adobe ColdFusion 10开发指南中的点对点通信中使用WebSocket时mysocket,<cfwebsocket>可以调用一个invoke()方法,该方法可以从JavaScript调用Any CFC上的任何公共方法.
这怎么不是安全风险?cfc/function如何防止被websocket调用?
1.创建CFM页面index.cfm.
Run Code Online (Sandbox Code Playgroud)<script type="text/javascript"> function msgHandler(msgobj){ var txt = document.getElementById("myDiv"); var message = ColdFusion.JSON.encode(msgobj); txt.innerHTML += message + "<br >" + "<br>"; } function invokecfcfn(){ var fname= document.getElementById("fnname").value; if (fname == "f2") { alert("f2 selected"); mysocket.invoke("mycfc", "f2", ["echo"]); } else mysocket.invoke("mycfc", fname); } </script> <cfwebsocket name="mysocket" onmessage="msgHandler"/> <form> <select id="fnname"> <option>f1</option> <option>f2</option> <option>f3</option> </select> <input id="invokefn" name="invokefn" value="Invoke CFC function " type="button" onclick="invokecfcfn();"> <div id="myDiv"> …
coldfusion ×10
cfml ×4
railo ×2
sql-server ×2
cfwebsocket ×1
coldfusion-9 ×1
java ×1
jboss ×1
log4j ×1
logging ×1
mysql ×1
notepad++ ×1
null ×1
slf4j ×1
sql ×1
syntax ×1