数据表中的Primefaces subTable无法正常工作

时间:2017-02-12 13:02:56

标签: jsf primefaces datatable

我对jsf很新,我在dataTable中实现subTable有点麻烦。来自我的子表的Der var属性似乎没有评估列表中的元素。当我执行我的webapp并导航到xhtml站点时,也没有调用我的支持bean中的@PostConstruct方法。控制台中没有显示错误,所以我几乎不知道我做错了什么。

支持Bean

---------------------------
Segmentation  | Total Score
---------------------------
GROUP 1       | 425
GROUP 2       | 125
GROUP 3       | 125
GROUP 5       | 100
GROUP 6       |  50
---------------------------

SelEvaluation Class

@Named(value = "selfEvalBean")
@ViewScoped
public class SelfEvaluationBean extends AbstractBean implements Serializable {


private static final long serialVersionUID = 310401011219411386L;


private static final Logger logger = Logger.getLogger(SelfEvaluationBean.class);

@Inject
private ISelfEvaluationManager manager;


private List<SelfEvaluation> selfEvaluations;


private SelfEvaluationTopic topic;


public List<SelfEvaluation> getSelfEvaluations() {
    return selfEvaluations;
}


public void setSelfEvaluation(final List<SelfEvaluation> theSelfEvaluations) {
    selfEvaluations = theSelfEvaluations;
}


@PostConstruct
public void init() {
    if (!isLoggedIn()) {
        return;
    }
    final User user = getSession().getUser();
    List<SelfEvaluation> eval = user.getSelfEvaluations();
    if (eval == null) {
        eval = manager.createSelfEvaluation(user);
    }
    selfEvaluations = eval;
    topic = new SelfEvaluationTopic();
}

//some methods

/**
 * @return the topic
 */
public SelfEvaluationTopic getTopic() {
    return topic;
}

/**
 * @param theTopic
 */
public void setTopic(final SelfEvaluationTopic theTopic) {
    topic = theTopic;
}



}

SelfEvaluationTopic Class

@Entity
public class SelfEvaluation extends JPAEntity implements Serializable {

private static final long serialVersionUID = 1L;

@ManyToOne
private User user;

@Column
private String title;

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private List<SelfEvaluationTopic> topics = new ArrayList<>();


public User getUser() {
    return user;
}


public void setUser(final User theUser) {
    user = theUser;

public List<SelfEvaluationTopic> getTopics() {
    return topics;
}


public void setTopics(final List<SelfEvaluationTopic> theTopics) {
    topics = theTopics;
}


public void addSelfEvalTopic(final SelfEvaluationTopic theTopic) {
    topics.add(theTopic);
}


public void removeSelfEvalTopic(final SelfEvaluationTopic theTopic) {
    topics.remove(theTopic);

}

@Override
public boolean equals(final Object theObject) {
    if (!(theObject instanceof SelfEvaluation)) {
        return false;
    }
    final SelfEvaluation other = (SelfEvaluation) theObject;
    return getId().equals(other.getId());
}


public String getTitle() {
    return title;
}


public void setTitle(final String title) {
    this.title = title;
}

@Override
public int hashCode() {
    return getId().hashCode();
}

@Override
public String toString() {
    return String.format("SelfEvaluation {id: %d, from: %s}", getId(),
            user.getUsername());
}

}

XHTML网站

@Entity
public class SelfEvaluationTopic extends JPAEntity implements Serializable {

private static final long serialVersionUID = 1L;

@Column(nullable = false)
private String topic;

@Column
private boolean sad;

@Column
private boolean normal;

@Column
private boolean happy;


public String getTopic() {
    return topic;
}


public void setTopic(final String theTopic) {
    topic = assertNotNull(theTopic);
}


public boolean getSad() {
    return sad;
}


public void setSad(final boolean evaluation) {
    sad = evaluation;
}


public boolean getNormal() {
    return normal;
}


public void setNormal(final boolean evaluation) {
    normal = evaluation;
}


public boolean getHappy() {
    return happy;
}


public void setHappy(final boolean evaluation) {
    happy = evaluation;
}

@Override
public boolean equals(final Object theObject) {
    if (!(theObject instanceof SelfEvaluationTopic)) {
        return false;
    }
    final SelfEvaluationTopic other = (SelfEvaluationTopic) theObject;
    return getId().equals(other.getId());
}

@Override
public int hashCode() {
    return getId().hashCode();
}

@Override
public String toString() {
    return String
            .format("SelfEvaluationTopic {id: %d, topic: %s, sad: %b, normal: %b, happy: %b}",
                    getId(), topic, sad, normal, happy);
}

}

Manager Class使用一些初始数据填充数据库,因此没有什么真正有趣的事情发生。 JSF版本为2.2.12,PrimeFaces版本为6.0。 我使用Maven进行构建,而webapp正在GlassFish 4.1.1上运行。

0 个答案:

没有答案