jboss+ejb3.0の動的生成リストデータベースは更新されず、ページは操作可能
@Removeは呼び出せませんが@Destoryは使えます.jarパッケージをロードする必要がありますか?
ページコードは次のとおりです.
@Scope(ScopeType.PAGE)
@Name("messageManagerBean")
public class MessageManagerBean {
@DataModel
private List<Message> messageList;
@DataModelSelection
@Out(required=false)
private Message message;
//
// @PersistenceContext(unitName="tpdb")
// private EntityManager entityManager;
EntityManager em = Persistence.createEntityManagerFactory("tpdb").createEntityManager();
@SuppressWarnings("unchecked")
@Factory("messageList")
public void findMessage(){
messageList=em.createQuery("from Message o order by o.datetimeDate desc").getResultList();
}
public void select(){
message.setReadbook(true);
}
public void delete(){
messageList.remove(message);
em.remove(message);
message=null;
}
@Delete
@Destroy
public void destory(){
}
}
ページコードは次のとおりです.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich"
xmlns:s="http://jboss.com/products/seam/taglib">
<head>
<title>Messages</title>
</head>
<body>
<f:view>
<h:form>
<h2>Message List</h2>
<h:outputText value="No messages to display" rendered="#{messageList.rowCount==0}"/>
<h:dataTable var="msg" value="#{messageList}" rendered="#{messageList.rowCount>0}">
<h:column>
<f:facet name="header">
<h:outputText value="ReadBook"/>
</f:facet>
<h:selectBooleanCheckbox value="#{msg.readbook}" disabled="true"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Title"/>
</f:facet>
<h:commandLink value="#{msg.title}" action="#{messageManagerBean.select}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Date/Time"/>
</f:facet>
<h:outputText value="#{msg.datetimeDate}">
<f:convertDateTime type="both" dateStyle="medium" timeStyle="short"/>
</h:outputText>
</h:column>
<h:column>
<h:commandButton action="#{messageManagerBean.delete}" value="Delete" />
</h:column>
</h:dataTable>
<h3><h:outputText value="#{message.title}"/></h3>
<div><h:outputText value="#{message.text}" /></div>
</h:form>
</f:view>
</body>
</html>