如何从Java类中获取Spring MessageContext
?
我应该使用一些@Resource
或@Autowire
将context
var注入类,或者,例如,使用一些全局上下文SpringContext或其他一些来获取{{1} }。
什么是方法?
答案 0 :(得分:4)
如果我理解正确您正在使用带有JSF的Spring Webflow,并且需要从JSF MessageContext中访问Webflow ActionListener?
如果是这样你可以随时使用RequestContextHolder(注意使用Webflow中的那个,因为Spring MVC拥有它!),但它使用ThreadLocal
所以它不太优雅:
MessageContext messageContext =
RequestContextHolder.getRequestContext().getMessageContext();
您无法使用标准DI,因为MessageContext
是使用FlowExecutor
在每个流程开始或简历上由MessageSource
根据每个请求创建的。{/ p>
答案 1 :(得分:3)
我首先阅读standard method of doing this is并尝试:
@Resource WebServiceContext wsContext;
@WebMethod public String echoHello(String msg) {
MessageContext context = wsContext.getMessageContext();
...
}
这是在服务器端如何做到的。在客户端,请求和响应上下文只是您从服务存根中检索的简单映射(即使您没有明确要求,也将实现BindingProvider
);他们不需要MessageContext
添加的范围管理。
答案 2 :(得分:0)
<transition on="search">
<evaluate expression="service.search(service.id, messageContext)" result="scope" />
</transition>`
在Service.java中,您现在可以使用messageContext。
public List search(String serviceId, MessageContext messageContext) {
...
messageContext.addMessage(
...
}