Java 如何使用WireVariable修复bean到ViewModel的注入?

Java 如何使用WireVariable修复bean到ViewModel的注入?,java,spring,zk,Java,Spring,Zk,我正在开发web应用程序,并尝试使用@WireVariable将@Service注入到视图模型中。Allpication生成并部署,但在ViewModel初始化期间,会出现my bean方法调用上的NullPointerException。由于某种原因,我的豆子没有注射 使用@Inject对控制器进行注入工作正常 视图模型 package ua.dynamicdemoadmin; public class ClientProfilesListViewModel { @WireVari

我正在开发web应用程序,并尝试使用@WireVariable将@Service注入到视图模型中。Allpication生成并部署,但在ViewModel初始化期间,会出现my bean方法调用上的NullPointerException。由于某种原因,我的豆子没有注射

使用@Inject对控制器进行注入工作正常

视图模型

package ua.dynamicdemoadmin;

public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;

    @Init
    public void init() {

        someB.someM(); //exception appears here
    }
}
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;
}

Spring上下文

<beans xmlns:zkspc="http://www.zkoss.org/2008/zkspring/core"
xsi:schemaLocation=http://www.zkoss.org/2008/zkspring/core http://www.zkoss.org/2008/zkspring/core/zkspring-core.xsd">

<context:component-scan base-package="ua.dynamicdemoadmin"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/"/>
    <property name="suffix" value=""/>
</bean>

<zkspc:zk-config/>
</beans>

要连接Spring托管bean,需要注册Spring变量解析器DelegatingVariableResolver。然后,您可以为连接Spring管理的bean添加@WireVariable注释

视图模型

package ua.dynamicdemoadmin;

public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;

    @Init
    public void init() {

        someB.someM(); //exception appears here
    }
}
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;
}


要连接Spring托管bean,需要注册Spring变量解析器DelegatingVariableResolver。然后,您可以为连接Spring管理的bean添加@WireVariable注释

视图模型

package ua.dynamicdemoadmin;

public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;

    @Init
    public void init() {

        someB.someM(); //exception appears here
    }
}
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
public class ClientProfilesListViewModel {

    @WireVariable
    SomeB someB;
}


我不熟悉@wirelaviable,但在谷歌上搜索,似乎有额外的标签,你必须这样做。你能在这里使用@Autowired,或者将someB作为构造函数参数注入吗?我不熟悉@wirelaviable,但在谷歌上,似乎有额外的标记需要你去做。您可以在这里使用@Autowired,或者将someB作为构造函数参数注入吗?很高兴看到您自己能够找到解决方案。这也是最好的解决办法。(还有第二个解决方案:)很高兴看到你自己能找到解决方案。这也是最好的解决办法。(还有第二种解决方案:)