相关疑难解决方法(0)

如何选择合适的bean范围?

我注意到有不同的bean范围,如:

@RequestScoped
@ViewScoped
@FlowScoped
@SessionScoped
@ApplicationScoped
Run Code Online (Sandbox Code Playgroud)

每个人的目的是什么?如何为我的bean选择合适的范围?

jsf scope jsf-2 managed-bean

372
推荐指数
2
解决办法
20万
查看次数

由于CDI/Weld中的@Named,@ ManagedBeans在JavaEE6中是否已过时?

由于CDI(及其实现Weld),JEE6中的每个POJO都可以注释@Named,这使得POJO可以被视图访问.

这是否意味着ManagedBeans现在已经完全过时了?还是我错过了@ManagedBean仍然有意义的东西?

jsf java-ee jsf-2 jboss-weld

41
推荐指数
4
解决办法
2万
查看次数

在Request Scoped Bean中将项添加到List

我有一个支持bean如下:

@Named
@RequestScoped
public class ClientNewBackingBean {

    @Inject
    private ClientFacade facade;
    private Client client;
Run Code Online (Sandbox Code Playgroud)

Client类有一个List<Child> childrenList属性,等等.我能够创建一个新的Client设置时childrenListnew ArrayList().

在视图中,我有一个输入文本字段和一个Add Child按钮.该按钮的属性actionListener=#{clientNewBackingBean.addChild()}实现为:

public void addChild() {

    if(client.getChildrenList() == null) {
        client.getChildrenList(new ArrayList());
    }

    Child c = new Child("John Doe");

    client.getChildrenList().add(c);
}
Run Code Online (Sandbox Code Playgroud)

每次Add Child单击按钮时,都会重新创建bean,并且视图只显示一个John Doe子项(由于它是Request stroped,我相信).除了将bean范围更改为Session之外,还有其他方法可以解决这个问题吗?

jsf scope cdi

2
推荐指数
1
解决办法
1363
查看次数

标签 统计

jsf ×3

jsf-2 ×2

scope ×2

cdi ×1

java-ee ×1

jboss-weld ×1

managed-bean ×1