2013-02-13 81 views
0

我試圖將現有商店合併到jsf中的新客戶端,但它不成功。該程序基本上包括一個支持bean控制器,一個ejb和jsf頁面(註冊),我已經能夠在combobox UI中填充shoplist。這裏是代碼。如何將商店實體合併到客戶實體(多對一)jsf

register.xhtml:

clientcontroller.client.fname是一個SFSB。
Property已經存在,但試圖合併。
從列表中店(shopcontroller.shopList

<h:form> 
<h:panelGrid columns="3" > 
<h:outputText value="Select From. 
Available Shops :" />  
<h:selectOneMenu value="#. 
{shopController.shop}" > 
<f:selectItems var="s" value="#.  
{shopController.shopList}" /> 
    </h:selectOneMenu> 

<h:commandButton value="register". 
    action="#{clientcontroller.Register(s)}" /> 
</h:panelGrid> 
</h:form> 

支撐類:

ManagedBean(name="clientcontroller") 
@RequestScoped 
public class clientController { 

@EJB ClientEJB clientEJB; 

private Client clt = new Client(); 
private Shop shp = new Shop(); 
private String clientfname; 

//getters and setters 

public String Register(Shop shp){ 
    this.shp = shp; 
    clientEJB.register(clt, shp); 
    return ""; 
} 

EJB類:

@Stateful 
@LocalBean 
public class ClientEJB { 

    @PersistenceContext 
    EntityManager em; 


    public void addClient(Client clt){ 
    em.persist(clt); 
    } 

    public void register(Client c ,Shop s){ 
    c.getShopList().add(s); 
    s.setAvailability("false"); 
    s.setClientid(c); 
    em.merge(s); 
    em.merge(c); 
    } 
} 
+0

那麼究竟是什麼問題?你在期待什麼,你會得到什麼? – kostja 2013-02-13 09:02:18

回答

0

調整你的代碼如下:

XHTML:

<h:commandButton value="register" action="#{clientcontroller.Register}" /> 

ManagedBean

public String Register(){ 
     clientEJB.register(clt, shp); 
     return ""; 
    } 

另請參見:

相關問題