相关疑难解决方法(0)

JSF 1.0 vs JSF 2.0

这两个版本的JSF(JSF 1.0和JSF 2.0)有什么区别?由于我是java的新手,我只发现建筑级别的差异.但是,从视角来看,我无法知道它对应用程序开发有多大影响?

此外,强加的MVC与JSF和Spring不同.即使JSF改进了架构,Spring仍然使用得更多.Spring的重要性在上面有什么意义?

java jsf frameworks web-frameworks jsf-2

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

无法在另一个@ManagedBean中@Inject一个@ManagedBean

好的,这是我的会话bean.我总是可以从任何Servlet或Filter中检索currentUser.这不是问题问题是fileList和currentFile.我用简单的int和Strings进行了测试,并且它的效果相同.如果我从视图范围bean中设置一个值,我可以从另一个类中获取数据.

@ManagedBean(name = "userSessionBean")
@SessionScoped
public class UserSessionBean implements Serializable, HttpSessionBindingListener {

    final Logger logger = LoggerFactory.getLogger(UserSessionBean.class);

    @Inject
    private User currentUser;

    @EJB
    UserService userService;

    private List<File> fileList;   

    private File currentFile;

    public UserSessionBean() {

        fileList = new ArrayList<File>();
        currentFile = new File("");
    }

    @PostConstruct
    public void onLoad() {

        Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
        String email = principal.getName();

        if (email != null) {
            currentUser = userService.findUserbyEmail(email);
        } else {

            logger.error("Couldn't find user information from login!");
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是一个例子.

我的观点是scoped bean.这就是它的装饰方式.

 @ManagedBean
 @ViewScoped
 public …
Run Code Online (Sandbox Code Playgroud)

jsf inject cdi managed-bean

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

使用RequestScoped(面孔)和RequestScoped(上下文)有什么区别

我注意到我可以摆脱使用和的@RequestScoped 注释@javax.enterprise.context.RequestScoped@javax.faces.bean.RequestScoped

在一种情况下,面孔版本似乎有效,而在另一种情况下,上下文版本似乎有效。

我想知道的是,哪个是首选/推荐?

我正在使用 PrimeFaces 框架,直到后来在我的开发中才意识到我可以 @ViewScoped在大多数情况下使用。

java servlets primefaces jsf-2.2 jakarta-ee

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

CDI豆注射

这是@ApplicationScoped@SessionScopedbean中注入bean 的正确方法吗?这会导致我的应用程序作用域bean存储在每个用户的会话中吗?

我有一个应用程序范围的bean,它包含我们在所有系统用户之间共享的一些值,现在我需要在会话bean的方法中获取这些值.

jsf cdi managed-bean jsf-2.2

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

将JSF托管bean注释与Spring Boot集成

我在JSF 2.2中使用Spring启动.我的问题是我可以创建@ManagedBean,javax.annotation.ManagedBean当我运行应用程序时它在我的index.xhtml中工作,但是当我想使用时javax.faces.bean.ManagedBean不显示值.这两者有什么区别?为什么我不能用 javax.faces.bean.ManagedBean?(我没有web.xml文件,所有都在类中配置)

jsf spring managed-bean spring-boot

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

@ApplicationScoped Bean被构造多次

我有两个托管Java Bean:

import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;

import javax.ws.rs.Path;

@Path("/sync")
@ManagedBean(name="syncService", eager=true)
@ApplicationScoped
public class SyncService {
    @ManagedProperty(value="#{ldapDirectoryAccess}")
    private DirectoryAccess directoryAccess;

    public void setDirectoryAccess(DirectoryAccess directoryAccess) {
        System.out.println("SyncService.setDirectoryAccess()");
        this.directoryAccess = directoryAccess;
    }

    public SyncService() {
        System.out.println("SyncService() - constructed: " + this);
    }

    @PostConstruct
    public void init() {
        System.out.println("DirectoryAccess injected: " + directoryAccess + " in: " + this);
    }
    ...
}

@ManagedBean(name="ldapDirectoryAccess", eager=true)
@ApplicationScoped
public class LdapDirectoryAccess implements DirectoryAccess {
    public LdapDirectoryAccess() {
        System.out.println("LdapDirectoryAccess constructed: " + this); …
Run Code Online (Sandbox Code Playgroud)

jsf dependency-injection managed-bean

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