【问题标题】:passing objects between jsf and jpa在 jsf 和 jpa 之间传递对象
【发布时间】:2011-02-07 20:02:19
【问题描述】:

我怎样才能模仿这种行为

             <h:selectOneMenu id="idMovie" value="#{comments.comments.idMovie}" title="IdMovie" required="true" requiredMessage="The idMovie field is required." >
                <f:selectItems value="#{movies.movieItemsAvailableSelectOne}"/>
            </h:selectOneMenu>

            <h:selectOneMenu id="idUser" value="#{comments.comments.idUser}" title="IdUser" required="true" requiredMessage="The idUser field is required." >
                <f:selectItems value="#{user.userItemsAvailableSelectOne}"/>
            </h:selectOneMenu>

以诸如

之类的方式
            <h:SOMETHING id="idMovie" ´valueToCommit´="#{comments.comments.idMovie}" ´valueToGet´="#{movies.movies}"/>


            <h:SOMETHING id="idUser" ´valueToCommit´="#{comments.comments.idUser}" ´valueToGet´="#{user.userSession.user}"/>

movies.movi​​e 有我需要的当前对象 user.userSession.user 也是如此,但我不知道如何将它们传递给 cmets.commment.idMovie(Movie 类型)以进行提交

提前致谢

最好的问候 伊格纳西奥

【问题讨论】:

  • 这个问题和JS有什么关系?而且,您是否使用 JSF2?你应该这样标记。
  • 刚刚编辑的问题对不起,是 JSF 2.0
  • 答案发生了什么?
  • 我的回答是关于 Facelets。但是毕竟您使用的是 JSP 而不是 Facelets,尽管您使用的是 JSF 2.0。所以我删除了答案。

标签: java jsp jsf jpa


【解决方案1】:

这个在commentController的构造函数中;

    userController = (UserController) facesContext.getApplication().evaluateExpressionGet(facesContext, "#{user}", UserController.class);
    movieController = (MovieController) facesContext.getApplication().evaluateExpressionGet(facesContext, "#{movie}", MoviesController.class);

加号(在声明中)

private MovieController movieController = null;
private Comment comment = null;
private UserController userController = null;

public String create() {
    try {
        utx.begin();
    } catch (Exception ex) {
    }
    try {
        Exception transactionException = null;
        comment.setUserId(userController.getUser());
        comment.setMovieId(movieController.getMovie());
        jpaController.create(comment); ...Default Facade class
        try {
            utx.commit();
        } catch (javax.transaction.RollbackException ex) {
            transactionException = ex;
        } catch (Exception ex) {
        }...
          ...

成功了!!!!!!!!!!

【讨论】:

  • 如果两者都只是@ManagedBean,那么@ManagedPropertyevaluateExpressionGet() 更好。
  • 我不确定如何应用所述更改。
猜你喜欢
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
相关资源
最近更新 更多