2017-05-07 4 views
0

my mysqlデータベースに含まれる医師のリスト(medecin in french)を、hibernateフレームワークとstruts2を介して表示するjspページを作成しました。Struts2とHibernateを使用してデータを削除および変更する方法

私は医者を削除するための削除ボタンsupprimer(フランス語)と、医師のデータを編集するためのボタンmodifierを持っています。

編集ボタンmodifierは、選択された医師のすべてのデータ(id、nom、prenomなど)を受け取り、フォームに入れて更新することができます。

リストされたアクション私にこれを教えてください。 enter image description here

ListedesMedecins.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<%@ taglib prefix="sb" uri="/struts-bootstrap-tags"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Listes des Medecins</title> 
</head> 
<body> 
    <jsp:include page="accueil.jsp"/> 
    <h1>Listes des Medecins</h1> 
     <s:if test="Medecin.size() > 0"> 
<table border="1px" cellpadding="8px"> 
<tr> 
    <th>id</th> 
    <th>Nom</th> 
    <th>Prenom</th> 
      <th>contact</th> 
    <th>specialite</th> 

</tr> 
<s:iterator value="Medecin"> 
    <tr> 
     <td><s:property value="idmed" /></td> 
     <td><s:property value="nom" /></td> 
     <td><s:property value="prenom" /></td> 
        <td><s:property value="contact" /></td> 
     <td><s:property value="specialite"/></td> 
        <td><a href="<s:url action="Modmed" namespace="/Modmed"/>"> Modifier </a> </td> 
        <td><a href="<s:url action="Supmed" namespace="/Supmed"/>"> Supprimer </a> </td> 
    </tr> 
</s:iterator> 
</s:if> 
</table> 
</body> 
</html> 

必要なメソッド(、更新、削除を選択し、リスト)

public Medecin getMedecin(Integer idMedecin) { 
    log.info("********** Debut getMedecin MedecinDAO **********"); 
    Medecin Medecin = null; 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
    try { 
     Medecin = (Medecin) session.get(Medecin.class, idMedecin); 

     return Medecin; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     log.fatal(e.getMessage()); 
     return null; 
    } finally { 
     session.close(); 
     log.info("********** Fin getMedecin MedecinDAO **********"); 
    } 
} 

public boolean saveMedecin(Medecin Medecin) { 
    log.info("********** Debut saveMedecin MedecinDAO **********"); 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
    Transaction trans = session.beginTransaction(); 
    try { 


     session.save(Medecin); 
     trans.commit(); 
     return true; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     log.fatal(e.getMessage()); 
     trans.rollback(); 
     return false; 
    } finally { 
     session.close(); 
     log.info("********** Fin saveMedecin MedecinDAO **********"); 

    } 
} 

public boolean updateMedecin(Medecin Medecin) { 
    log.info("********** Debut updateMedecin MedecinDAO **********"); 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
    Transaction trans = session.beginTransaction(); 
    try { 
     session.update(Medecin); 
     trans.commit(); 
     return true; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     log.fatal(e.getMessage()); 
     return false; 
    } finally { 
     session.close(); 
     log.info("********** Fin updateMedecin MedecinDAO **********"); 

    } 
} 


public boolean deleteMedecin(Medecin Medecin) { 
    log.info("********** Debut deleteMedecin MedecinDAO **********"); 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
    try { 
     Transaction trans = session.beginTransaction(); 
     session.delete(Medecin); 
     trans.commit(); 
     return true; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     log.fatal(e.getMessage()); 
     return false; 
    } finally { 
     session.close(); 
     log.info("********** Fin deleteMedecin MedecinDAO **********"); 
    } 
} 

    public List<Medecin> allmedecin(){ 

    List<Medecin> medecin = null; 

    Session session = SessionFactoryUtil.getInstance().openSession(); 
    String registr = "from Medecin"; 

    Query query = session.createQuery(registr); 
    medecin=query.list(); 

    return medecin; 
} 

そして最後に、私のアクションクラスで私のクラスMedecinDAO、formMedAction.java

//getters,setters... 
    //this method is for adding Medecin/doctors 
    public String Ajoutmed() { 


    MedecinDAO medDAO= MedecinDAO.getInstance(); 
    Medecin M = new Medecin(); 

    M.setIdmed(idmed); 
    M.setNom(nom); 
    M.setPrenom(prenom); 
    M.setContact(contact); 
    M.setSpecialite(specialite); 
    medDAO.saveMedecin(M); 

    return SUCCESS; 

    } 
    // return list of all medecin in the table 
    public String Listmed() throws Exception { 

    MedecinDAO medDAO = MedecinDAO.getInstance(); 
    Medecin = medDAO.allmedecin(); 

    return SUCCESS; 
    } 

    // Method I created to delete the data, but I'm not sure if it correct 
    public String Supmed() { 
     MedecinDAO medDAO = MedecinDAO.getInstance(); 
     Medecin M = new Medecin(); 
     M.getIdmed(); 
     M.getNom(); 
     M.getPrenom(); 
     M.getContact(); 
     M.getSpecialite(); 
     medDAO.deleteMedecin(M); 

     return SUCCESS; 


    } 

    public string Modmed() { 
    //dont know what to do for the modifier/edit action , need your help 
    return SUCCESS; 
    } 

ありがとうございました

EDIT!

はMedecinDAOにこのコードで医者を削除する方法を見つける:

public Medecin deleteMedecin(Integer idmed) { 
    log.info("********** Debut deleteMedecin MedecinDAO **********"); 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
     Transaction trans = session.beginTransaction(); 
     Medecin m = (Medecin) session.load(Medecin.class, idmed); 
     session.delete(m); 
     trans.commit(); 
     return m; 
    } 

そして、アクションクラス

public String Supmed() { 
     MedecinDAO medDAO = MedecinDAO.getInstance(); 
     Medecin m = new Medecin(); 
     m = medDAO.deleteMedecin(getIdmed()); 
     return SUCCESS; 

    } 

とJSPボタンアクション

<td><a href="<s:url action="Supmed" namespace="/pages"><s:param name="idmed" value="%{idmed}"></s:param></s:url>"> Supprimer </a> </td> 
中でこれを追加します

今、私は編集方法を知る必要があります

答えて

0

[OK]を、私は解決策を発見しました。

選択したオブジェクトのパラメータ(ID、名前など)を取得する場合は、このコードを追加するだけです。 (例えば私の場合、私は必要に応じて:idmed、NOM prenom、接触、specialite)

<td><a class="btn btn-warning" href="<s:url action="editmed" namespace="/pages"> <s:param name="idmed" value="%{idmed}" ></s:param><s:param name="nom" value="%{nom}" ></s:param><s:param name="prenom" value="%{prenom}" ></s:param><s:param name="contact" value="%{contact}" ></s:param><s:param name="specialite" value="%{specialite}" ></s:param></s:url>"> Modifier </a> </td> 

編集アクション

public String editmed() 
{ 

    return SUCCESS; 
} 

を作成し、新しいページを作成し、ためたedit.jspたとえば、あなたがストラットのテキストフィールドに、PARAMの値を設定(などを選択する。)

<s:form action="Modmed" id="Modmed" namespace="/pages" theme="bootstrap" cssClass="bs-example form-horizontal"> 

       <s:textfield label="Identifiant" type="Number" min="1" name="idmed" value="%{idmed}"/> 
       <s:textfield label="Nom" name="nom" value="%{nom}" /> 
       <s:textfield label="Prenom" name="prenom" value="%{prenom}" /> 
       <s:textfield label="Contact" name="contact" value="%{contact}" /> 
       <s:textfield label="Spécialité" name="specialite" value="%{specialite}"/> 

       <div class="col-lg-9 col-lg-offset-3"> 
       <s:submit cssClass="btn btn-primary" value="Sauvegarder"/> 

    </div> 
      </s:form> 

そして、それが動作するはずです!

1

のように編集する必要があります。あなたは更新したいプロパティを設定した後

Medecin med = (Medecin) session.get(Medecin.class, idmed); 
med.setNom("Andrea"); //set new values of your columns 

:まず、あなたが更新するワンMedecinオブジェクトを取得することができます

public Medecin updateMedecin(Medecin updatedObject) { 
    log.info("********** Debut updateMedecin MedecinDAO **********"); 
    Session session = SessionFactoryUtil.getInstance().openSession(); 
    Transaction trans = session.beginTransaction(); 
    session.save(updatedObject); 
    trans.commit(); 
    return updatedObject; 
} 

編集:あなたは新しい選択メドオブジェクトの値を設定する必要がある場合最初のJSPページ、editアクションのためにあなたが

、二ページを形成するためにidMed渡す必要があり、列を更新するためのフォームを必要とするJSPボタン:

<td><a href="<s:url action="edit" namespace="/edit"><s:param name="idmed" value="%{idmed}"></s:param></s:url>"> Edit</a> </td> 

フォームページ:

<s:form action="update"> 
<s:push value="medecin"> 
    <s:hidden name="idmed" /> 
    <s:textfield name="name" label="User Name" value="%{medecin.nom} /> 
    <s:textfield name="surname" label="Sur Name" value="%{medecin.prenom} /> 
    <s:submit /> 
</s:push> 
</s:form> 

そして最後に、あなたは、JSPからidパラメータを取得することができます。

request.getParameter("idmed") 
+0

thxしかし、新しいJSPページ、フォーム、idmed、nomなどの値を設定するには、選択したMedecinオブジェクトの値をどのように設定するのですか? –

+1

私の投稿を編集しました@ KaneSamba – fiskra

+0

Ok thxですが、まだ問題に直面しています。私は編集アクションでエラーを起こしたと思います。 public String edit() { 文字列param = ServletActionContext.getRequest()。getParameter( "idmed"); 返信SUCCESS; }これは私がやったことですが、私は空白のページを持っています、私はタイトルしか持っていません、フォームは表示されていません。私は別のJSPページを作成し、編集アクションをとparamに設定し、あなたが行ったようにフォームに記入します。しかし、残っている唯一のことは、Actionクラスのメソッドを編集することだと思います。 –

関連する問題