标签: coldfusion

ColdFusion在字符串中构造数据库查询时添加额外的引号

我在ColdFusion中编码,但是试图留在cfscript中,所以我有一个函数允许我传入一个查询来运行它 <cfquery blah > #query# </cfquery>

但不知何故,当我构建查询sql = "SELECT * FROM a WHERE b='#c#'" 并将其传入时,ColdFusion已将单引号替换为2个单引号.所以它变成 WHERE b=''c''了最后的查询.

我尝试过很多不同的方法创建字符串,但我不能只留下一个引用.即使进行字符串替换也没有效果.

知道为什么会这样吗?在这个项目期间,它破坏了我在cfscript中生活的希望

sql string coldfusion railo cfml

11
推荐指数
2
解决办法
7278
查看次数

Java AppDomain喜欢抽象吗?

我很好奇是否有任何类似于.Net的AppDomain的Java抽象.

特别是,我很好奇,因为我发现使用我们的Coldfusion/J2EE服务器,我们需要每隔几天重新启动它,因为我们还没有能够轻松跟踪内存泄漏.这可能会破坏我们长期运行的流程,而且我们真的想要一种慢慢地将人们推向新JVM的方法,因为他们已经超过了某个时间段/内存阈值.

从我有限的.Net经验来看,我非常肯定这是IIS和AppDomains能够通过回收内存压力下的AppDomain无缝管理的一种情况.如果我在这个场景中帮助AppDomains,请告诉我.

有什么建议?

.net java coldfusion appdomain java-ee

11
推荐指数
2
解决办法
4222
查看次数

ColdFusion是否有用于创建结构的简短语法?

在ColdFusion中创建结构有什么"简短"的语法吗?我想替换这个冗长的代码:

<cfscript>
  ref = StructNew();
  ref.Template = "Label";
  ref.Language = "en";
  stcML = GetPrompts(ref);
</cfscript>
Run Code Online (Sandbox Code Playgroud)

更像是一个JavaScript对象:

<cfscript>
  stcML = GetPrompts({ Template: "Label", Language: "en" });
</cfscript>
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

syntax coldfusion struct

11
推荐指数
2
解决办法
9094
查看次数

在CF9 ORM中设置NULL值

有没有办法让CF9 ORM将NULL值插入数据库而不是空字符串?

I've got a numeric field which can be null, but throws an error because it's trying to enter ''.

coldfusion orm null

11
推荐指数
1
解决办法
7911
查看次数

ColdFusion中静态方法的等价物是什么?

在C#中,我创建了静态方法来帮助我执行简单的操作.例如:

public static class StringHelper
{
    public static string Reverse(string input)
    {
        // reverse string
        return reversedInput;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在控制器中,我会通过简单地使用:

StringHelper.Reverse(input);
Run Code Online (Sandbox Code Playgroud)

现在我正在使用ColdFusion和Model Glue,我想做同样的事情.但是,似乎ColdFusion中没有静态方法的概念.如果我像这样创建一个CFC:

component StringHelper
{
    public string function Reverse(string input)
    {
        // reverse string
        return reversedInput;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否可以通过StringHelper在控制器中创建实例来调用此方法,如下所示:

component Controller
{
    public void function Reverse()
    {
        var input = event.getValue("input");
        var stringHelper = new StringHelper();
        var reversedString = stringHelper.Reverse(input);
        event.setValue("reversedstring", reversedString);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者在某些地方我可以放置"静态"CFC,框架将在后台创建一个实例,这样我就可以使用它,好像它是静态的,有点像helpers文件夹的工作方式?

c# coldfusion static coldfusion-9

11
推荐指数
2
解决办法
2106
查看次数

你如何使用cfscript从另一个cfm页面调用cfc中的cffunction?

我有一个test.cfm页面,并希望 从该页面(test.cfm)调用一个<cffunction>名为errorEmailusing 的cfc <cfscript>而不是

<cfinvoke component = "#cfcPath#" method = "errorEmail" returnVariable = "myReturn" 
    description = "get list of projman">
</cfinvoke> 
Run Code Online (Sandbox Code Playgroud)

我试过了:

<cfscript>
   errorEmail(cfcPath);
</cfscript>
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc

11
推荐指数
1
解决办法
1万
查看次数

你如何顺利地为twitter-bootstrap进度条制作动画?

我在屏幕底部有一个30秒计时器的多人游戏.如果没有一个玩家进行30秒的移动,表单提交.

var ProgressValue = 0;
function showProgress() {
    ProgressValue += 100/30;
    if (ProgressValue > 100) {
        $('form').submit();
    }
    // Ajax is done here to see if anyone has made a move.
    $('.progress .bar').css('width',ProgressValue + '%');
    setTimeout(showProgress, 1000);
}

setTimeout(showProgress, 1000);
Run Code Online (Sandbox Code Playgroud)

每一秒,我检查应用程序范围,看看是否有人更改了值

Application.LastMove
Run Code Online (Sandbox Code Playgroud)

我想让进度条平滑动画,但我不想通过减少超时值来实现.我认为检查是否有人每秒都进行一次移动已经足够加载服务器了.

我听说过WebSockets,但是我当前的服务器是在ColdFusion 8上,所以(我认为)我很满意每秒进行一次ajax调用,除非你觉得ajax不那么优雅,而且文明年龄较小.

问:你如何将twitter-bootstrap进度条平滑地从3.3%动画到6.6%?

javascript coldfusion twitter-bootstrap

11
推荐指数
1
解决办法
1万
查看次数

ColdFusion:按名称获取url参数

我想从ColdFusion 10中获取一个URL参数CGI.QUERY_STRING.怎么做没有循环?

parameters url coldfusion

11
推荐指数
1
解决办法
2万
查看次数

组件上具有accessors = true的意外行为

我试图在Lucee上的组件上使用合成访问器(虽然这个问题在ColdFusion上似乎也是一样的).

Repro代码:

// Person.cfc
component accessors=true {

    property firstName;
    property lastName;

    function init(firstName, lastName){
        variables.firstName = arguments.firstName;
        variables.lastName = arguments.lastName;
    }

}
Run Code Online (Sandbox Code Playgroud)

和调用代码:

// person.cfm
person = new Person("Abigail", "Bowen");
writeDump(person);
Run Code Online (Sandbox Code Playgroud)

注意我在这里没有使用合成访问器,我纯粹是将参数值设置为同名变量范围的变量.

但是,当我运行此代码时,我看到:

转储输出显示属性

请注意如何填充属性.这没有问题,但我显然不明白accessors旗帜应该如何运作.我认为它只是为了为我(它有)合成一些存取方法,但这就是全部.

另请注意,如果我将CFC定义修改为将访问器设置为true,则转储显示如下:

转储没有属性

因此没有合成访问器(如预期的那样),但现在甚至没有显示属性(使用变量范围值或不具有变量范围值).

我真的不明白"属性"和访问者设置的这种混淆吗?当然,访问者设置应该只影响是否创建了这些访问器方法?

如果我只是在其中一个平台上看到这个,我可能会把它归结为如何writeDump()解释属性定义的变幻莫测.但是ColdFusion 11的行为是一样的,所以看起来我的行为似乎有些不同.

有谁能解释一下?有没有解释它的文档?如果不是......嗯...为什么不呢?

我的基本担忧是,属性值没有"正确"存储,并且一旦我实现了更多的代码,可能会给我带来问题.

更新:至少在ColdFusion上,它似乎只是一个writeDump()行为的改变,因为如果有属性的getter(无论是否accessors设置了标志),那么属性值开始显示在转储中.但是Lucee的情况并非如此,所以那里仍然存在问号.

为了充分披露,这个问题是我在博客上提出的一个问题的摘要(" CFML:试图理解访问者 ").复制是故意的,因为我的博客与本网站的受众不同.

coldfusion cfml lucee

11
推荐指数
1
解决办法
951
查看次数

如何在某些java类或包上限制createObject()?

我想创建一个安全的ColdFusion环境,我正在使用多个沙箱配置.使用友好的管理员界面可轻松实现以下任务:

  • 限制CFtags如:cfexecute,cfregistry和cfhttp.
  • 禁用对内部ColdFusion Java组件的访问.
  • 仅通过第三方资源访问某些服务器和端口范围.

而其他人则相应地使用Web服务器的配置.

问题:

所以我对设置感到满意只是为了以后遇到,无论应用于cfexecute标签的限制如何,都可以用来java.lang.Runtime轻松地执行系统文件或脚本;

String[] cmd = {"cmd.exe", 'net stop "ColdFusion 10 Application Server"'};
Process p = Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)

或使用java.lang.ProcessBuilder:

ProcessBuilder pb = new ProcessBuilder("cmd.exe", 'net stop "ColdFusion 10 Application Server"');
....
Process myProcess = pb.start();
Run Code Online (Sandbox Code Playgroud)

问题是我找不到任何允许我禁用这两个类的解决方案:java.lang.Runtime&java.lang.ProcessBuilderfor the createObject().对于注释:我已经在sanbox和os权限中尝试过文件限制,但不幸的是它们似乎只在I/O文件操作上工作,我不能搞乱系统库的安全策略,因为它们可能在内部使用通过ColdFusion.

coldfusion jvm-arguments cfadmin java-security

11
推荐指数
1
解决办法
784
查看次数