Bjö*_*lex 3 java jsf-2 glassfish-3
考虑以下支持bean:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
@ManagedBean
@SessionScoped
public class Counter {
int counter;
public Counter() {
this.counter = 0;
}
public void Increment() {
this.counter++;
}
public void Decrement() {
this.counter--;
}
public int getCounter() {
return this.counter;
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个显示计数器值的JSF页面,并有两个按钮来递增和递减它.它按预期工作.但是,当我将注释添加javax.inject.Named
到bean时,它似乎不再具有会话范围.按钮仍然有效(点击在服务器端处理),但计数器的值始终保持为零.我正在使用注释,因为在我的实际应用程序中,我需要将其他bean注入到这个注释中,并且这个注释似乎是必需的(如果我错了,请纠正我).这种行为的原因是什么?我该怎么做才能解决这个问题?
您不能将JSF与CDI注释混合使用.使用其中一个.在这种情况下,您需要导入javax.enterprise.context.SessionScoped
而不是javax.faces.bean.SessionScoped
.
归档时间: |
|
查看次数: |
3959 次 |
最近记录: |