文档对此并不完全清楚 - 这些变量之间是否存在差异?在IIS上,至少它们看起来是相同的,但如果它在其他服务器下可能不同,我不想依赖它.
我已经使用ColdFusion 9和ColdFusion on Wheels Framework大约6个月了.我仍然认为自己是初学者,但我很乐意做我需要的大部分事情.
我最近开始编写完整的CF Script组件,我喜欢语法的清晰度.我很失望失去CFQuery,CFLoop等提供的一些简单性......但我现在可以没有这个.
最近,有几个人提到Railo有更好的CFScript支持.我正在考虑转换那个原因.
我应该记住什么,以及两个平台在功能和易用性方面如何相互叠加?
我有一个我在ColdFusion中构建的应用程序,所有请求都将通过index.cfm文件运行.
我有一个重写URL的.htaccess文件.所以,例如...如果我写:
http://domain.com/hello/goodbye/howdy
实际请求总是使用index.cfm,如下所示:
http://domain.com/index.cfm/hello/goodbye/howdy
这一切都很好,但现在我仍然坚持我如何抓住URL中的所有内容.没有一个CGI变量似乎没有输出URL的"/ hello/goodbye/howdy"部分.
我试过cgi.path_info和cgi.query_string等无济于事......它们只是空白.
我需要抓住域名后面的所有内容,然后用CF做东西.我知道它在JS中是可能的,但我真的需要在服务器上.
倾倒CGI范围表明我在这方面没有任何用处:
<cfdump var="#cgi#" />
Run Code Online (Sandbox Code Playgroud)
这是我的htaccess文件供参考:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.cfm$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.cfm [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^([^\.]+)\.domain\.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:
另外需要注意的是,我也尝试了类似的底层Java方法:
<cfdump var="#getPageContext().getRequest().getContextPath()#" />
<cfdump var="#getPageContext().getRequest().getRequestURL()#" />
<cfdump var="#getPageContext().getRequest().getQueryString()#" />
Run Code Online (Sandbox Code Playgroud)
没有成功:(
说我有一个非常简单的控制器,如下所示:
<cfcomponent extends="Controller">
<cffunction name="hello">
<cfset time = Now()>
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
在直接的ColdFusion/Railo中,我会在本地范围内查找所有变量......但是我看到的每个轮子都没有.
这可能会让我获得年度奖项中最愚蠢的问题,但这是我想到的,因为似乎没有人能够正确展示他们的Wheels代码范围?
我会写如下:
<cfcomponent extends="Controller">
<cffunction name="hello">
<cfset local.time = Now()>
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
我不确定Wheels是否可以采取措施来解决这个问题,这就是为什么我看到我到处做什么......或者只是一个糟糕的编程案例?
谢谢!米奇
我试图让映射工作
...
this.mappings = {
"/toolbox" = ExpandPath(".") & "toolbox",
"/models" = ExpandPath(".") & "controllers/model",
"/model" = ExpandPath(".") & "controllers/model" // hack, plural is correct
};
setupApplication() {
...
// works
application.objCCFRO = new controllers.model.ccfro();
application.objUtil = new controllers.model.utils();
// Does not work
application.objCCFRO = new models.ccfro();
application.objUtil = new models.utils();
...
}
Run Code Online (Sandbox Code Playgroud)
无效的组件定义,无法在railo.runtime.component.ComponentLoader.load(ComponentLoader.java:276)上找到models.ccfro:276 at railo.runtime.component.ComponentLoader.loadComponent(ComponentLoader.java:39):39 at railo.runtime.PageContextImpl.loadComponent(PageContextImpl.java:2784):2784 at railo.runtime.functions.other.CreateObject.doComponent(CreateObject.java:178):178 at railo.runtime.functions.other._CreateComponent.call( _CreateComponent.java:21):21 at scorecard38.application_cfc $ cf.udfCall(D:\ railo\webapps\www\Scorecard38\Application.cfc:55):55 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java) :94):94
注意:ACF没有此问题
我想从存储为字符串的url中解析特定的url变量键值.看来你可以在ACF下使用底层的java库coldfusion.util.HTMLTools,但我也需要它在Railo下工作.还有其他方法,或者使用正则表达式是最佳答案吗?
我正在尝试检索url变量键的值,而不使用类似于以下示例的url中的锚点. http://example.com?key=134324625625435#gid=0
为了使用搜索引擎友好的URL,我已将以下映射添加到我的web.xml:
<servlet-mapping>
<servlet-name>CFMLServlet</servlet-name>
<url-pattern>/mywebsitename.com/index.cfm/*</url-pattern>
<url-pattern>/mywebsitename.com/posts/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
这让我可以使用像mywebsitename.com/posts/my-first-post这样的网址
然而,一个小故障正在发生.如果我尝试访问之前正在使用的CFC文件,它现在只返回该CFC的html文本,而不是在Railo中实际处理它.
为了更好地解释它,如果我将上面的servlet-mapping添加到web.xml并调用mywebsite.com/Components/CFCProxy.cfc - 返回该cfc的html.我希望看到这些函数的Railo转储.
但是,如果我从web.xml文件中删除servlet-mapping,那么当我访问同一个URL时,我会看到可以调用的CFC函数的正确铁路转储,这是我期望看到的.
因此,如果没有servlet-mapping,它可以正常工作,但是使用servlet,只返回CFC的html文本.
所以我的猜测是,通过添加servlet-mapping,我无法以某种方式禁用Railo对该CFC的处理.所以我想知道的是如何让CFC文件再次正常处理?我是否需要为servlet-mapping添加另一行?如果是,那么什么?
谢谢
我叫Trang,我在https://registry.hub.docker.com/u/trangunghoa/railo-mysql/上创建了Docker镜像. 运行正常.现在我创建了Dockerfile,但我无法启动自动Railo服务.请帮我.我从shell脚本的一些命令开始:
exec /opt/railo/railo_ctl start
exec /opt/railo/railo_ctl start -D FOREGROUND
service railo_ctl restart
exec service railo_ctl restart
Run Code Online (Sandbox Code Playgroud)
没有命令它工作.
我发现的关于 CFPDF 的所有内容都表明向 PDF 添加页码的方法是这样的
<cfpdf action="addFooter" source="#finalFile#" name="mypdf"
text="Page _PAGENUMBER of _LASTPAGENUMBER" />
Run Code Online (Sandbox Code Playgroud)
问题是我找到的每个参考文献都是针对 ColdFusion 9 及之前版本的,我想知道 Lucee 的人是否没有包含此功能,因为我收到一条错误消息
Attribute text is not allowed for tag cfpdf
Run Code Online (Sandbox Code Playgroud)
这是语法问题还是 Lucee/Railo 的疏忽没有将其放入。
我正在使用 CFPDF 合并功能合并一组 PDF,该功能工作正常,但我现在需要在 PDF 上添加页码,这就是我遇到的困难。
这是我正在尝试做的事情的更完整的图片。唯一不起作用的部分是addFooter线路
<cfpdf action = "merge" destination="#finalFile#" overwrite="yes">
<cfloop array="#arrayOfPdfs#" index="k">
<cfpdfparam source="#k#">
</cfloop>
</cfpdf>
<cfpdf action="addFooter" source="#finalFile#" name="mypdf"
text="Page _PAGENUMBER of _LASTPAGENUMBER" />
<cfloop array="#arrayOfPdfs#" index="k">
<cffile action="delete" file="#k#">
</cfloop>
Run Code Online (Sandbox Code Playgroud)