【发布时间】:2015-08-17 18:33:52
【问题描述】:
我有这个脚本可以在 ColdFusion 中生成条形码:
<cfscript>
code128 = createobject("java","com.lowagie.text.pdf.Barcode128");
code128.setCodeType(code128.CODE128);
/* Set the code to generate */
code128.setCode("123")
color = createobject("java","java.awt.Color");
image = code128.createAwtImage(color.black, color.white);
bufferedImage = createObject("java", "java.awt.image.BufferedImage");
bufferedImageType = bufferedImage.TYPE_BYTE_GRAY;
bufferedImage = bufferedImage.init(image.getWidth(JavaCast("null", "")),image.getHeight(JavaCast("null", "")), bufferedImageType);
graphics2D = bufferedImage.createGraphics();
graphics2D.drawImage(image,0,0,JavaCast("null", ""));
barcodeImage = imageNew(bufferedImage);
</cfscript>
<!--- Output the code as an image --->
<cfimage action="writeToBrowser" source="#barcodeImage#" format="jpg" width="100" height="30">
我想将code128.setCode("123") 更改为动态的,即code128.setCode("#someID#")。但是,当我这样做时,我会收到一个 CF 错误:
错误信息:要么没有指定方法的方法 名称和参数类型或 setCode 方法重载 ColdFusion 无法可靠破译的参数类型。冷融合 找到 0 个与提供的参数匹配的方法。如果这是一个 Java 对象并且您验证了该方法存在,请使用 javacast 减少歧义的功能。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
你是说代码可以与
code128.setCode("123");一起工作,但不与code128.setCode("#someID#");一起工作吗? #someID# 的值是多少? 该错误通常意味着它所说的内容 - a)您尝试使用类中根本不存在的方法或 b)您传递的值类型错误,并且需要使用javacast转换它。例如,如果该方法需要一个字符串code128.setCode( javacast("string", someID) );。旁注,不确定是否是错字,但您在第三行缺少分号。