【发布时间】:2014-07-02 03:07:17
【问题描述】:
您好,我正在尝试访问和调用我的 JSF 页面中托管 bean 内的方法。以下是 JSF 页面的相关部分:
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://xmlns.jcp.org/jsf/passthrough"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns="http://www.w3.org/1999/xhtml"
template="./template.xhtml">
<ui:define name="right">
<c:forEach items="#{tweetManager.getTweets}" var="item">
<h:link value="#{item.username}" />
Likes: <h:outputText value="#{item.likes}" />
<h:link id="" value="like" /> <br />
<textarea>
<h:outputText value="#{item.text}" />
</textarea>
</c:forEach>
</ui:define>
这是托管 bean。
@ManagedBean
@RequestScoped
public class TweetManager {
private Tweet TweetEntity;
private List<Tweet> Tweets;
@EJB
private TweetService TweetService;
@PostConstruct
public void init(){
TweetEntity = new Tweet();
}
public void setTweet(Tweet tweetEntity){
this.TweetEntity = tweetEntity;
}
public Tweet getTweet(){
return this.TweetEntity;
}
public void Save(){
TweetService.create(TweetEntity);
}
public List<Tweet> getTweets(){
Query query = TweetService.getEntityManager().createNativeQuery("SELECT * FROM tweet");
Tweets = query.getResultList();
return Tweets;
}
}
我收到一条错误消息:... .TweetManager' 没有属性 'getTweets'。
【问题讨论】:
-
您使用的是哪个版本的 ExpressionLanguage?试试:
-
您的代码显示两个
getTweets()(我认为这是编辑问题的问题)。无论如何,由于您不使用泛型,一旦此问题得到解决,您将收到item.username的错误(因为据编译器所知,item是Object)。使getTweets()返回List<Tweet>而不是List。 -
应该在发布之前再次修改我的代码。是的,它与 getWeets() 一起工作我已经添加了我导入的所有 xmlns 版本。