开始有点喜欢coldfusion了,它能调用java object,让我感觉很熟悉,呵呵。结合各种资源和自己的理解写了个小demo用以记录自己的学习历程。
coldfusion的安装配置这里就不再赘述了,直接从代码说起。
首先,先建好java类,很爽,好久没new class文件了
public class Wudiju {
private String FirstName;
private String LastName;
private int age;
private String sex;
public Wudiju() {
super();
}
public Wudiju(String firstName, String lastName, int age, String sex) {
super();
FirstName = firstName;
LastName = lastName;
this.age = age;
this.sex = sex;
}
public String getFirstName() {
return FirstName;
}
public void setFirstName(String firstName) {
FirstName = firstName;
}
public String getLastName() {
return LastName;
}
public void setLastName(String lastName) {
LastName = lastName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//计算日薪
public double getDaySalary(double money){
return (double)money/20;
}
//计算年薪
public double getYearSalary(double monthSalary){
return (double)monthSalary * 12;
}
//重载计算年薪方法,假如公司给我发14个月的money,嘿嘿
public double getYearSalary(int monthSalary){
return (double)monthSalary * 14;
}
}
接着写cfm文件
<!---创建一个Wudiju的实例,wudiju是我们的实例变量,createObject就是我们用来创建JAVA对象的方法, 如果要创建JAVA或者EJB对象,第一个参数必须是java,第二个参数就是要创建的那个JAVA类 ---> <cfset wudiju = createObject("java","Wudiju")> <!---这里coldfusion用init()来调用构造函数初始化对象,可以带参数,如果不写coldfusion会调用默认的构造构造函数,跟java一样---> <!---<cfset wudiju.init()>---> <!---对象实例化好后,就可以对它进行操作了,可以调用get和set方法---> <cfset wudiju.setFirstName("Sun")> <cfset wudiju.setLastName("Mike")> <cfset wudiju.setAge(22)> <cfset wudiju.setSex("male")> <cfset firstname = wudiju.FirstName> <cfset lastname = wudiju.LastName> <cfset age = wudiju.age> <cfset sex = wudiju.sex> <cfoutput> Wudiju's English name is #firstname# #lastname# ,age is #age# , sex is #sex#. <!---输出结果:Wudiju's English name is Sun Mike ,age is 22 , sex is male. ---> </cfoutput> <br/> <!---调用计算日薪方法---> <cfset result = wudiju.getDaySalary(200000)><!---一个月200000,我想钱想疯了---> <cfoutput> 日薪为:$#result# </cfoutput> <!---输出结果:日薪为:$10000 ---> <br/> <!---调用重载方法,由于java是强类型語言,而CF是弱類型的,如果直接調用一個重載方法,coldfusion不能確定調用哪個,這時我們需要使用javaCast 來指定我們要調用的方法的参数类型 ---> <!---我們來調用14個月年薪的方法,haha---> <cfset money = wudiju.getYearSalary(javaCast("int",200000))><!---This is one of my dreams.---> <cfoutput> Wudiju 14个月的工资为:$#money#. </cfoutput> <!---输出结果:Wudiju 14个月的工资为:$2800000.--->
对了,别忘了把编译好的class文件放在一个目录下,并在administrator->Server Settings->Java and JVM写好classpath.
Ok了。
可以在这看看调用流程:http://www.bennadel.com/blog/737-How-ColdFusion-CreateObject-Really-Works-With-Java-Objects.htm