标签: managed-bean

CDI @Named bean中的ManagedProperty返回null

我正在尝试处理@ManagedProperty但没有成功!

我一直在关注这个指南,看起来并不难.但我的代码根本行不通!

这是一个小片段

@ManagedBean
@SessionScoped
public class LoginBean {

@EJB
private LoginUserLocal loginUser;
private boolean loggedIn = false;
private User user;
private StreamedContent image;
.
.
.
//--
@Named(value = "messagesBean")
@RequestScoped
public class MessagesBean {

@ManagedProperty(value = "#{loginBean}")
private LoginBean loginBean;

public LoginBean getLoginBean() {
    return loginBean;
}

public void setLoginBean(LoginBean loginBean) {
    this.loginBean = loginBean;
}

public String getUser() {
    System.err.println(loginBean == null);
    return loginBean.getUser().getUsername();
}
Run Code Online (Sandbox Code Playgroud)

这段代码给了我一个NullPointerException,说loginBean为null!

有什么建议吗?

jsf ejb cdi managed-bean jboss-weld

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

JSF管理bean命名约定

这些天我曾经和JSF一起工作,但是有一个"惯例",如果我应该使用的话,我有疑问.在使用托管bean时,人们习惯将其命名为XxxxxManagedBean前缀可以是与您的业务相关的任何名称.

你有这样的工作吗?特别是,尽管让搜索变得容易,但我并不喜欢那么多.你在使用其他约定吗?

谢谢你回答这个简单的疑问.

jsf naming-conventions managed-bean

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

JSF如何找到使用@ManagedBean注释的bean?

据我所知,对于使用@Annotations(或C#中的[Attributes]),您必须引用类元数据,以便您可以询问该类是否已注释(属性).

我的问题是JSF实现如何查找所有使用@ManagedBean注释的类?它是否扫描类路径中的所有类?或者有没有办法实际"查询"JVM的注释类?

我问这个是因为当我直接在我的web项目中添加带注释的支持bean时,没有问题.但我在JAR文件中定义的bean(可跨项目重用)未注册.有什么东西我必须告诉MyFaces指导它看哪个JAR文件?

此外,使用注释引入了许多不错的编程模式.我想知道我是否能以某种方式找到所有带注释的类......

java annotations jsf-2 managed-bean

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

JSF托管bean EJB注入

我在企业应用程序模块中有一个EJB(PersonManager),它注入另一个EJB(Person):

@Stateful
public class PersonManager implements PersonManagerLocal {
    @EJB
    private PersonLocal person;

    @Override
    public void setPersonName(String name) {
        person.setName(name);
    }

    @Override
    public String getPersonName() {
        return person.getName();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在JSF Web应用程序中使用PersonManager EJB.我在faces-config.xml中定义它:

<managed-bean>
    <managed-bean-name>personManager</managed-bean-name>
    <managed-bean-class>ejb.PersonManager</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Run Code Online (Sandbox Code Playgroud)

问题是,不会发生PersonLocal EJB的注入.person属性始终为NULL.我错了什么?

但是如果我在这样的JSF托管bean中注入PersonManager:

@ManagedBean
@RequestScoped
public class Index {
    @EJB
    private PersonManagerLocal personManager;
    ....
Run Code Online (Sandbox Code Playgroud)

有用.我需要第一个场景,请帮助我:-D

jsf ejb managed-bean

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

如何从JSF中的另一个bean获取managedbean属性

我搜索了类似的问题,但我有点困惑.我有一个登录页面,所以LoginBean也是;

@ManagedBean(name = "loginBean")
@SessionScoped
public class LoginBean implements Serializable {    
    private String password="";
    private String image="";
    @ManagedProperty(value = "#{loginBeanIdentityNr}")
    private String identityNr="";
...
Run Code Online (Sandbox Code Playgroud)

成功后,导航到订单列表页面,所以我也有OrderBean.

@ManagedBean(name = "OrderBean")
@SessionScoped
       public class OrderBean {
            List<Ordery> sdList;

            public List<Order> getSdList() {

                try {

                    String identityNr ="";
                    ELContext elContext = FacesContext.getCurrentInstance().getELContext();
                    LoginBean lBean = (LoginBean) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "loginBean");
                    identityNr =lBean.getIdentityNr();
                    sdList = DatabaseUtil.getOrderByIdentityNr(identityNr);
    ...
    }
Run Code Online (Sandbox Code Playgroud)

我不需要整个LoginBean,只需要ManagedProperty"loginBeanIdentityNr".但是下面这段代码不起作用(当然);

identityNr = (String) FacesContext.getCurrentInstance()
                        .getApplication().getELResolver()
                        .getValue(elContext, null, "loginBeanIdentityNr");
Run Code Online (Sandbox Code Playgroud)

这次它给我返回null.我想如果我需要整个bean属性,我可以注入这些bean,对吗?那么,你对这种方法有什么建议吗?可以<f:attribute>用吗?

jsf managed-bean

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

Java EE 6:目标无法访问,标识符'helloBean'已解析为null

我想尝试一个简单的JSF 2教程示例.

我在Eclipse中使用动态Web项目并发布到Glassfish 3服务器(运行 - >在服务器上运行).第一个index.xhtml页面正确加载,但是当我必须访问托管bean时,会显示以下错误:

/index.xhtml @14,48 value="#{helloBean.name}": Target Unreachable, identifier 'helloBean' resolved to null
Run Code Online (Sandbox Code Playgroud)

我已经看过关于这个主题的各种其他讨论,但是这些解决方案对我来说似乎永远不会起作用(例如,添加beans.xml,根据命名约定给托管bean命名等).

任何帮助,将不胜感激.

这是我目前正在使用的代码:

的index.xhtml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:f="http://java.sun.com/jsf/core"      
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <title>JSF 2.0 Hello World</title>
    </h:head>
    <h:body>
        <h3>JSF 2.0 Hello World Example - hello.xhtml</h3>
        <h:form>
           <h:inputText value="#{helloBean.name}"></h:inputText>
           <h:commandButton value="Welcome Me" action="response"></h:commandButton>
        </h:form>
    </h:body>
</html>
Run Code Online (Sandbox Code Playgroud)

response.xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"    
      xmlns:h="http://java.sun.com/jsf/html">

    <h:head>
        <title>JSF 2.0 Hello World</title>
    </h:head> …
Run Code Online (Sandbox Code Playgroud)

java java-ee java-ee-6 jsf-2 managed-bean

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

目标无法访问,标识符在JSF 2.2中解析为null

我有JSF 2.2和CDI的问题,我的managerbean没有解决,出现此错误

"value ="#{userBean.user.name}":目标无法访问,标识符'userBean'已解析为null"

这是我的经理bean.

@ManagedBean
@RequestScoped
public class UserBean implements Serializable {
    private User user;

    public void setUser(user) {
        this.user = user;
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

我的观点是:

<h:form id="login-form">
    <h:outputText value="User"/>
    <h:inputText value="#{userBean.user.name}" id="username"/>

    <h:outputText value="Senha"/>
    <h:inputSecret value="#{userBean.user.password}" id="pasword"/>

    <h:commandButton id="button" value="Login" action="#{userBean.login}"/>

    <h:messages />
</h:form>
Run Code Online (Sandbox Code Playgroud)

jsf managed-bean jsf-2.2

17
推荐指数
3
解决办法
10万
查看次数

无法访问bean中的内部类

我正在使用JSF 2.0.我有一个托管bean,我可以通过我的xhtml页面访问.在bean内部,我声明了一个内部类.我可以访问ArrayList<String>托管bean但不能访问,ArrayList<InnerClass>我得到的错误是InnerClass没有可读属性.谁知道什么是错的?

el inner-classes jsf-2 managed-bean

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

在Web过滤器中访问会话范围的JSF托管bean

我有一个名为userSession的SessionScoped bean来跟踪用户(用户名,ifLogged等).我想过滤一些页面,因此我需要从我创建的webFilter访问bean.我怎么做?我看起来甚至不可能将豆子导入到潜在的可见区域.

jsf session-scope servlet-filters managed-bean

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

如何将JavaScript变量作为参数传递给JSF动作方法?

我正在准备JavaScript中的一些变量(在我的具体情况下,我想获得GPS位置):

function getVars() {
    // ...
    var x = locationInfo.lng; 
    var y = locationInfo.lat;
}
Run Code Online (Sandbox Code Playgroud)

我想通过以下命令按钮将它们发送到我的托管bean:

<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit(x,y)}" />
Run Code Online (Sandbox Code Playgroud)
public void submit(int x, int y) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何将JavaScript xy变量从JavaScript 发送到JSF托管bean操作方法?

javascript jsf parameter-passing managed-bean

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