2012-03-26 23 views
1

我正在为Mura CMS添加自己的bean的插件工作,并刚刚开始收到一个不存在的错误。我的一个bean有电子邮件,名称,金额等的setter和getter以及一些bean(即configBean,priceBean,teamBean)。Bean不存在的ColdSpring错误当我不在寻找一个

当我尝试加载该bean(称为donationBean)时,出现一个错误消息,指出没有bean存在与ID电子邮件。电子邮件不应该基于bean。除了getter/setter的电子邮件之外,我还没有添加任何代码,并且错误不会从任何其他属性中产生。下面是捐赠豆的的getter/setter部分:

public numeric function getAmount(){ return Variables.data['amount']; } 
    public void function setAmount(numeric amount){ Variables.data['amount'] = Arguments.amount; } 

    public any function getConfigBean(){ return Variables.configBean; } 
    public void function setConfigBean(any configBean){ Variables.configBean = Arguments.configBean; } 

    public string function getEmail(){ return Variables.data['email']; } 
    public void function setEmail(string email){ Variables.data['email'] = Arguments.email; } 

    public string function getId(){ return Variables.data['id']; } 
    public void function setId(string id){ Variables.data['id'] = Arguments.id; } 

    public string function getName(){ return Variables.data['name']; } 
    public void function setName(string name){ Variables.data['name'] = Arguments.name; } 

    public boolean function getPaid(){ return Variables.data['paid']; } 
    public void function setPaid(boolean paid){ Variables.data['paid'] = Arguments.paid; } 

    public any function getPriceBean(){ return Variables.priceBean; } 
    public void function setPriceBean(any priceBean){ Variables.priceBean = Arguments.priceBean; } 

    public numeric function getTeamId(){ return Variables.data['teamid']; } 
    public void function setTeamId(numeric teamid){ Variables.data['teamid'] = Arguments.teamid; } 

这是我的config.xml中

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
<beans default-autowire="byName"> 
    <bean id="registrationBean" class="[plugin]lib.registration" /> 
    <bean id="priceBean" class="[plugin]lib.price" /> 
    <bean id="donationBean" class="[plugin]lib.donation" /> 
</beans> 

最后我的代码加载了豆(从bean本身):

public any function createForTeamPayment(priceid, teamid, name, email){ 
    var price = getPriceBean().loadBy({priceid=Arguments.priceid}); 
    setAmount(price.getAmount()); 
    setTeamId(Arguments.teamid); 
    setName(Arguments.name); 
    setEmail(Arguments.email); 
    save(); 
    } 
+0

也许 '绰号' 看到了电子邮件属性,但ID电子邮件没有豆。也许你不应该使用'byName'。 – Henry 2012-03-26 18:09:00

+0

然后,我很困惑,为什么bean的其他属性都没有自动装配。在添加电子邮件属性之前,这很好。 – 2012-03-26 18:41:05

回答

0

我发现如果我将email属性更改为另一个名称,在我的情况下是donorEmail,那么一切都开始工作。我不知道为什么,因为没有带ID电子邮件的bean,并且它不被称为bean。

+0

如果在我可以将其标记为答案时没有其他答案,那么我会将其标记为一个答案。我不喜欢这个答案,因为我不喜欢“它刚开始工作”的答案。 – 2012-03-26 19:02:02

+0

我很好奇,如果范围确定你的函数调用会有所作为,比如this.setEmail(arguments.email);.那里可以有另一个setEmail函数吗? – 2012-03-26 23:12:22

+0

可能。由于我拉着穆拉的冷血豆,所以可能会有某种地方出现,但据我所知没有。当我没有时间紧迫的时候,我会测试一下,如果使用'this'修复任何东西。 – 2012-03-27 01:34:48

0

最有可能的一个命名空间冲突... EMAILID是在村命名空间... 你可以尝试设置为瓦尔局部范围...

结帐〜求\村\豆\ beanFactory.cfc ...

<cfset variables.transientAlias["email"]="emailBean"/> 

而且太〜需求\村\电子邮件\ emailBean.cfc

<cfcomponent extends="mura.bean.bean" output="false"> 

    <cfproperty name="emailID" type="string" default="" required="true" /> 
相关问题