来自其他 bean 的 JSF Bean 属性

标签 jsf static set javabeans

我尝试将一个 ManagedBean (SessionScoped) (loginBean) 的属性带到另一个 (RequestScoped) ManagedBean (newsBean):

<c:set value="#{loginBean.user.nickname}" target="#{newsBean}" property="author" />
            <h3>News verfassen:</h3>
            <h:form>
                <p:inputText label="Titel" value="#{newsBean.title}"></p:inputText>
                <p:inputTextarea label="Inhalt" value="#{newsBean.description}"></p:inputTextarea>
                <p:commandLink type="button" value="Absenden" action="#{newsBean.writeMsg}"></p:commandLink>
            </h:form>

我认为我可以使用 c:set 标签,就像我想“静态”设置属性的情况一样..:)

也许有人可以帮助我?

多米

----- 回答后 ------

登录Bean:

@ManagedBean
@SessionScoped
public class LoginBean {
public LoginBean() {
    email = "";
    pwd = "";
    device = "";
    user = null;
}

private String email;
private String pwd;
private User user;
private String device;
/**
 * @return the user
 */
public User getUser() {
    return user;
}

/**
 * @param user the user to set
 */
public void setUser(User user) {
    this.user = user;
}

和 NewsBean:

public class NewsBean {

@ManagedProperty("#{loginBean.user.nickname}")
private String nickname;

private String title;
private String description;

/**
 * Creates a new instance of NewsBean
 */
public NewsBean() {
}

是的,我还声明了用户昵称的 getter/setter!

最佳答案

只需使用 @ManagedProperty .

@ManagedBean
@ViewScoped
public class NewsBean {

    @ManagedProperty("#{loginBean.user.nickname}")
    private String author;

    // ...
}

关于来自其他 bean 的 JSF Bean 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848334/

相关文章:

parsing - 运行 JSF 页面错误 : Failed to parse the expression [${LogModel. getLogList()}]?

java - 如何在 p :dataGrid using p:graphicImage 中显示图像

css - 如何调整 p :commandButton 的大小

C# - 何时转换类属性的值

仅用一个整数表示一组整数的算法

java - JSF 如何在我的应用程序中显示 pom.xml 版本?

css - 在向下滚动之前加载页面时标题 CSS 中的背景照片

Java:父方法访问子类的静态变量?

static - 在 Rust 中运行时使用环境变量填充静态/常量

c++ - 奇怪的编译错误 : ISO C++ forbids declaration of ‘set’ with no type