2

我尝试将一个 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 标记,就像我想“静态”设置属性一样.. :)

也许有人可以帮助我?

多米

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

登录豆:

@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;
}

和新闻豆:

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!

4

1 回答 1

2

只需使用@ManagedProperty.

@ManagedBean
@ViewScoped
public class NewsBean {

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

    // ...
}
于 2012-08-07T14:41:35.360 回答