Thursday, May 21, 2015

Java EE эхлэл (Section 2)

Ажилтны бүртгэл хийх, тайлан гаргах жижигхэн жишээ аппликешнээ үргэлжлүүлье. model controller хэсгүүдээ тохируулсан тул одоо view хэсгийг хийнэ. Хэрэглэгчтэй харилцах хуудсууд нь JSF буюу xhtml өргөтгөлтэй байна. Мөн jsp байж болно. Онцын ялгаа байдаггүй ч сүүлийн хувилбар нь xhtml болсон.
Эхлээд jsf д зориулсан Managed Bean классыг үүсгэж өгнө. war -> New ->JSF Managed Bean


Managed Bean дараах байдалтай байна

 
package lu.ajiltan.managed;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import lu.ajiltan.beans.AjiltanFacadeLocal;
import lu.ajiltan.beans.AjiltniibolovsrolFacadeLocal;
import lu.ajiltan.beans.UlsFacadeLocal;
import lu.ajiltan.models.Ajiltan;
import lu.ajiltan.models.Ajiltniibolovsrol;
import lu.ajiltan.models.Uls;

/**
 *
 * @author Bilgee
 */
@ManagedBean
@ViewScoped
public class AjiltanManage implements Serializable{

    //enterprise java bean uud local interface eer holbogdono
    
    @EJB
    AjiltanFacadeLocal ajiltanfacade;
    
    @EJB
    AjiltniibolovsrolFacadeLocal ajiltanbolovsrolfacade;
    
    @EJB
    UlsFacadeLocal ulsfacade;
    
    //olon bolovsroliin medeelel oruulahiin tuld list ashiglana
    List bolovsrollist = new ArrayList();
    
    //ulsuudiig select One songoltond haruulahad ashiglana
    List ulslist = new ArrayList();
    
    //ehelj ajillahad songoltond ulsuudiig haruulahad post construct annotation ashiglana
    @PostConstruct
    public void init(){
        ulslist = ulsfacade.findAll();
    }

    //html page tei holbohdoo encapsulated tul get set ashiglana
    public List getUlslist() {
        return ulslist;
    }

    public void setUlslist(List ulslist) {
        this.ulslist = ulslist;
    }

    public List getBolovsrollist() {
        return bolovsrollist;
    }

    public void setBolovsrollist(List bolovsrollist) {
        this.bolovsrollist = bolovsrollist;
    }
    
    //model toroltei huvisagchuud hadgalah bolon ynz burin zuild ashiglana
    Uls ulsuud = new Uls();
    Ajiltniibolovsrol bolovsroluud = new Ajiltniibolovsrol();
    Ajiltan ajiltan = new Ajiltan();

    public Ajiltan getAjiltan() {
        return ajiltan;
    }

    public void setAjiltan(Ajiltan ajiltan) {
        this.ajiltan = ajiltan;
    }

    public Ajiltniibolovsrol getBolovsroluud() {
        return bolovsroluud;
    }

    public void setBolovsroluud(Ajiltniibolovsrol bolovsroluud) {
        this.bolovsroluud = bolovsroluud;
    }

    public Uls getUlsuud() {
        return ulsuud;
    }

    public void setUlsuud(Uls ulsuud) {
        this.ulsuud = ulsuud;
    }
    
    //Add lists, olon ajiltnii bolovsroliig ehleed listed hiine, list populate hiih arga
    
    public String addAjiltanBolovsrol(){
        bolovsrollist.add(bolovsroluud);
        bolovsroluud = new Ajiltniibolovsrol();
        return null;
    }
    
    //Medeelliig hadgalah undsen function
    public String saveAjiltan(){
        try{
            //listed populate hiisen medeelliig Ajiltnii Bolovsrol d hadgalah
            for(Ajiltniibolovsrol bo : bolovsrollist){
                bo.setAjiltniiDugaar(ajiltan);
            }
            
            //ajiltnii medeelliig ajiltan d hadgalah
            ajiltanfacade.create(ajiltan);
            return null;
        }
        catch(Exception ex){
            return ex.toString();
        }
    }
    
    public AjiltanManage() {    
    } 
}

Харин холбогдох хэсэг буюу Facade классуудад entity manager автоматаар үүссэн байх ба бага зэрэг код бичиж entity Тэй холбоно. Үүнд жишээгээр AjiltanFacade ийг авч үзвэл дараах байдалтай байна

@Stateless
public class AjiltanFacade extends AbstractFacade implements AjiltanFacadeLocal {
    @PersistenceContext(unitName = "AjiltanBurtgel-ejbPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public AjiltanFacade() {
        super(Ajiltan.class);
    }
    
    @Override
    public Ajiltan find(Object id){
        return em.find(Ajiltan.class, id);
    }
    
    //haruulah bolon list populate hiihed ashiglagdana
    @Override
    public List findAll(){
        List returnlist = new ArrayList();
        TypedQuery query = em.createNamedQuery("Ajiltan.findAll", Ajiltan.class);
        try{
            returnlist = query.getResultList();
        }
        catch(Exception ex){
            ex.toString();
        }
        return returnlist;
    }
    //hadgalahad ashiglana
    @Override
    public void create(Ajiltan empl){
        try{
            em.persist(empl);
        }
        catch(Exception ex){
            System.out.println(ex.toString());
        }
        finally{}
    }
}

харагдах хэсэг буюу Jsf page ийн хувьд үүсгэхдээ war->New->JSF Page сонгоно. Managed bean тэй холбохдоо #{managedBean} шигтгээ ашиглана.

ajiltan.xhtml


    
        Ажилтан жишээ
    
    
        
        
                
                    
                                     
                        
                    
                    
                    
                                     
                        
                    

                
        
                  
                      
                        Сургууль нэмэх
                    

                      
                        
                    
                      
                     
                 
                
                        
                    
        
        
              
            
            

            
              
             
            

              
             
            

             
              
            
    
            
            
              
                          
                         
                        
            
            

             
            
    


No comments:

Post a Comment