2017-07-08 36 views
0

我正在尋找獲取JSON頁面的列表。我目前使用hibernate + struts,我已經添加到我的構建路徑JSON Struts2 plugin如何使用Struts2獲取JSON列表

我簡單配置了我的struts.xml但我總是獲得相同的ERRORS,我該如何通過JSON進行登錄?

這些都是我的課:

/////// Anagrafica.hbm.xml /////// 
    <?xml version="1.0" encoding="utf-8"?> 
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
    <hibernate-mapping> 
     <class name="it.unirc.pjam.Anagrafica.Model.Anagrafica" table="ANAGRAFICA"> 
      <id name="ID_Anagrafica" type="java.lang.Integer"> 
       <column name="ID_Anagrafica" /> 
       <generator class="identity" /> 
      </id> 
      <property name="Nome" type="string"> 
       <column name="Nome" not-null="true" /> 
      </property> 
      <property name="Cognome" type="string"> 
       <column name="Cognome" not-null="true" /> 
      </property> 
      <property name="Provincia" type="string"> 
       <column name="Provincia" not-null="true" /> 
      </property> 
      <property name="Codice_fiscale" type="string"> 
       <column name="Codice_fiscale" not-null="true" /> 
      </property> 
      <many-to-one name="ruolo" class="it.unirc.pjam.Ruolo.Model.Ruolo" lazy="false"> 
       <column name="ID_Tipo_Anagrafica" not-null="true" /> 
      </many-to-one> 
      <one-to-one name="utenza" class="it.unirc.pjam.Utenza.Model.Utenza" 
       cascade="save-update" property-ref="anagrafica" foreign-key="anagrafica"> 
      </one-to-one> 


      <set name="scontrini" inverse="true" cascade="save-update" lazy="false" > 
       <key column="ID_Anagrafica" not-null="false" unique="true" /> 
       <one-to-many class="it.unirc.pjam.Scontrino.Model.Scontrino" /> 
      </set> 

      <one-to-one name="tessera" class="it.unirc.pjam.Tessera.Model.Tessera" 
       cascade="save-update" property-ref="anagrafica" foreign-key="anagrafica"> 
      </one-to-one> 
     </class> 
    </hibernate-mapping> 

/////// method of AnagraficaStruts.java /////// 
public String AnagraficheJSON(){ 
     Ruoli = ruoloDAO.getRuoli(); 
     anagrafiche = dao.getAnagrafiche(); 
     return "success"; 
    } 

/////// action in struts.xml /////// 
     <!-- JSON --> 
     <action name="listAnagrafiche1" method="listAnagrafiche" 
      class="it.unirc.pjam.Action.AnagraficaStruts"> 
      <result type="json"> 
       <param name="ignoreHierarchy">false</param> 
      </result> 
     </action> 
     <!-- FINE JSON --> 

編輯:我成功獲得JSON,但我不想要的領域,如RuoloScontrinoCatalogo等,和我在JSON文件開始的空對象。我該如何解決?

{ 
    "ID_Anagrafica": 0, 
    "anagrafica": { 
    "ID_Anagrafica": 0, 
    "ID_Tipo_Anagrafica": 0, 
    "codice_fiscale": null, 
    "cognome": null, 
    "nome": null, 
    "provincia": null, 
    "ruolo": null, 
    "scontrini": [ 

    ], 
    "tessera": null, 
    "utenza": null 
    }, 
    "anagrafiche": [ 
    { 
     "ID_Anagrafica": 4, 
     "ID_Tipo_Anagrafica": 0, 
     "codice_fiscale": "123123", 
     "cognome": "prova", 
     "nome": "manlio", 
     "provincia": "r", 
     "ruolo": { 
     "anagrafiche": [ 
      null 
     ], 
     "descrizione": "Cassiere", 
     "id": 2 
     }, 
     "scontrini": [ 
     { 
      "anagrafica": null, 
      "data": null, 
      "id": 7, 
      "importoTotale": 1300.0, 
      "iva": 22.0, 
      "prodotti": [ 
      { 
       "catalogo": [ 
       { 
        "descrizione": "mac", 
        "id": 5, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "macbook air", 
       "id": 7, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 800.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "mac" 
      }, 
      { 
       "catalogo": [ 
       { 
        "descrizione": "notebook", 
        "id": 6, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "asus", 
       "id": 6, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 500.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "note" 
      } 
      ], 
      "totalePezzi": 2 
     }, 
     { 
      "anagrafica": null, 
      "data": null, 
      "id": 3, 
      "importoTotale": 6300.0, 
      "iva": 22.0, 
      "prodotti": [ 
      { 
       "catalogo": [ 
       { 
        "descrizione": "mac", 
        "id": 5, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "macbook air", 
       "id": 7, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 800.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "mac" 
      }, 
      { 
       "catalogo": [ 
       { 
        "descrizione": "notebook", 
        "id": 6, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "asus", 
       "id": 6, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 500.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "note" 
      }, 
      { 
       "catalogo": [ 

       ], 
       "descrizione": "macbook pro", 
       "id": 8, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 1000.0, 
       "prezzoAcquistato": 500.0, 
       "prezzoScontato": 200.0, 
       "scontrini": [ 
       null 
       ], 
       "tipo": "mac" 
      } 
      ], 
      "totalePezzi": 7 
     }, 
     { 
      "anagrafica": null, 
      "data": null, 
      "id": 4, 
      "importoTotale": 45800.0, 
      "iva": 22.0, 
      "prodotti": [ 
      { 
       "catalogo": [ 
       { 
        "descrizione": "mac", 
        "id": 5, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "macbook air", 
       "id": 7, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 800.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "mac" 
      }, 
      { 
       "catalogo": [ 
       { 
        "descrizione": "notebook", 
        "id": 6, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "asus", 
       "id": 6, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 500.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "note" 
      } 
      ], 
      "totalePezzi": 91 
     }, 
     { 
      "anagrafica": null, 
      "data": null, 
      "id": 1, 
      "importoTotale": 4900.0, 
      "iva": 22.0, 
      "prodotti": [ 
      { 
       "catalogo": [ 
       { 
        "descrizione": "mac", 
        "id": 5, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "macbook air", 
       "id": 7, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 800.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "mac" 
      }, 
      { 
       "catalogo": [ 
       { 
        "descrizione": "notebook", 
        "id": 6, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "asus", 
       "id": 6, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 500.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "note" 
      } 
      ], 
      "totalePezzi": 8 
     }, 
     { 
      "anagrafica": null, 
      "data": null, 
      "id": 2, 
      "importoTotale": 1300.0, 
      "iva": 22.0, 
      "prodotti": [ 
      { 
       "catalogo": [ 
       { 
        "descrizione": "mac", 
        "id": 5, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "macbook air", 
       "id": 7, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 800.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "mac" 
      }, 
      { 
       "catalogo": [ 
       { 
        "descrizione": "notebook", 
        "id": 6, 
        "prodotti": [ 
        null 
        ] 
       } 
       ], 
       "descrizione": "asus", 
       "id": 6, 
       "nPezziDisponbili": 1, 
       "nPezziVenduti": 1, 
       "prezzo": 500.0, 
       "prezzoAcquistato": 10.0, 
       "prezzoScontato": 10.0, 
       "scontrini": null, 
       "tipo": "note" 
      } 
      ], 
      "totalePezzi": 2 
     } 
     ], 
     "tessera": { 
     "anagrafica": null, 
     "id": 4, 
     "n_tessera": 12, 
     "punti": 5.0 
     }, 
     "utenza": { 
     "anagrafica": null, 
     "password": "admin", 
     "stato_Utenza": "attiva", 
     "username": "admin" 
     } 
    }, 
    { 
     "ID_Anagrafica": 5, 
     "ID_Tipo_Anagrafica": 0, 
     "codice_fiscale": "boh", 
     "cognome": "fiore", 
     "nome": "fiore", 
     "provincia": "rm", 
     "ruolo": { 
     "anagrafiche": [ 
      null 
     ], 
     "descrizione": "Proprietario", 
     "id": 1 
     }, 
     "scontrini": [ 

     ], 
     "tessera": { 
     "anagrafica": null, 
     "id": 5, 
     "n_tessera": 200, 
     "punti": 0.0 
     }, 
     "utenza": { 
     "anagrafica": null, 
     "password": "fiore", 
     "stato_Utenza": "disattiva", 
     "username": "fiore" 
     } 
    } 
    ], 
    "codice_fiscale": null, 
    "cognome": null, 
    "idRuolo": 0, 
    "nome": null, 
    "provincia": null, 
    "ruoli": [ 
    { 
     "anagrafiche": [ 

     ], 
     "descrizione": "CapoMastrogiulia Gioia", 
     "id": 4 
    }, 
    { 
     "anagrafiche": [ 
     { 
      "ID_Anagrafica": 4, 
      "ID_Tipo_Anagrafica": 0, 
      "codice_fiscale": "123123", 
      "cognome": "prova", 
      "nome": "manlio", 
      "provincia": "r", 
      "ruolo": null, 
      "scontrini": [ 
      { 
       "anagrafica": null, 
       "data": null, 
       "id": 2, 
       "importoTotale": 1300.0, 
       "iva": 22.0, 
       "prodotti": [ 
       { 
        "catalogo": [ 
        { 
         "descrizione": "notebook", 
         "id": 6, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "asus", 
        "id": 6, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 500.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "note" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "mac", 
         "id": 5, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "macbook air", 
        "id": 7, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 800.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "mac" 
       } 
       ], 
       "totalePezzi": 2 
      }, 
      { 
       "anagrafica": null, 
       "data": null, 
       "id": 3, 
       "importoTotale": 6300.0, 
       "iva": 22.0, 
       "prodotti": [ 
       { 
        "catalogo": [ 

        ], 
        "descrizione": "macbook pro", 
        "id": 8, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 1000.0, 
        "prezzoAcquistato": 500.0, 
        "prezzoScontato": 200.0, 
        "scontrini": [ 
        null 
        ], 
        "tipo": "mac" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "notebook", 
         "id": 6, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "asus", 
        "id": 6, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 500.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "note" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "mac", 
         "id": 5, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "macbook air", 
        "id": 7, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 800.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "mac" 
       } 
       ], 
       "totalePezzi": 7 
      }, 
      { 
       "anagrafica": null, 
       "data": null, 
       "id": 4, 
       "importoTotale": 45800.0, 
       "iva": 22.0, 
       "prodotti": [ 
       { 
        "catalogo": [ 
        { 
         "descrizione": "notebook", 
         "id": 6, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "asus", 
        "id": 6, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 500.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "note" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "mac", 
         "id": 5, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "macbook air", 
        "id": 7, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 800.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "mac" 
       } 
       ], 
       "totalePezzi": 91 
      }, 
      { 
       "anagrafica": null, 
       "data": null, 
       "id": 1, 
       "importoTotale": 4900.0, 
       "iva": 22.0, 
       "prodotti": [ 
       { 
        "catalogo": [ 
        { 
         "descrizione": "notebook", 
         "id": 6, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "asus", 
        "id": 6, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 500.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "note" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "mac", 
         "id": 5, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "macbook air", 
        "id": 7, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 800.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "mac" 
       } 
       ], 
       "totalePezzi": 8 
      }, 
      { 
       "anagrafica": null, 
       "data": null, 
       "id": 7, 
       "importoTotale": 1300.0, 
       "iva": 22.0, 
       "prodotti": [ 
       { 
        "catalogo": [ 
        { 
         "descrizione": "notebook", 
         "id": 6, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "asus", 
        "id": 6, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 500.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "note" 
       }, 
       { 
        "catalogo": [ 
        { 
         "descrizione": "mac", 
         "id": 5, 
         "prodotti": [ 
         null 
         ] 
        } 
        ], 
        "descrizione": "macbook air", 
        "id": 7, 
        "nPezziDisponbili": 1, 
        "nPezziVenduti": 1, 
        "prezzo": 800.0, 
        "prezzoAcquistato": 10.0, 
        "prezzoScontato": 10.0, 
        "scontrini": null, 
        "tipo": "mac" 
       } 
       ], 
       "totalePezzi": 2 
      } 
      ], 
      "tessera": { 
      "anagrafica": null, 
      "id": 4, 
      "n_tessera": 12, 
      "punti": 5.0 
      }, 
      "utenza": { 
      "anagrafica": null, 
      "password": "admin", 
      "stato_Utenza": "attiva", 
      "username": "admin" 
      } 
     } 
     ], 
     "descrizione": "Cassiere", 
     "id": 2 
    }, 
    { 
     "anagrafiche": [ 
     { 
      "ID_Anagrafica": 5, 
      "ID_Tipo_Anagrafica": 0, 
      "codice_fiscale": "boh", 
      "cognome": "fiore", 
      "nome": "fiore", 
      "provincia": "rm", 
      "ruolo": null, 
      "scontrini": [ 

      ], 
      "tessera": { 
      "anagrafica": null, 
      "id": 5, 
      "n_tessera": 200, 
      "punti": 0.0 
      }, 
      "utenza": { 
      "anagrafica": null, 
      "password": "fiore", 
      "stato_Utenza": "disattiva", 
      "username": "fiore" 
      } 
     } 
     ], 
     "descrizione": "Proprietario", 
     "id": 1 
    }, 
    { 
     "anagrafiche": [ 

     ], 
     "descrizione": "supervisore", 
     "id": 3 
    } 
    ] 
} 
+0

你爲什麼想通過JSON登錄?這是一個與暴露不同的問題,你根本不需要它。 –

+0

@RomanC現在我只想要'Anagrafiche'的列表,因爲我通過瀏覽器登錄。但我需要製作一個android應用程序,所以我必須使用JSON管理登錄。現在,如果你能幫我解決這個問題,我會非常高興。 – Manlio

+0

您可以在一篇文章中詢問您只有一個問題,否則您的問題將被脫離主題並刪除。 –

回答

0

您應該將json結果配置爲僅包含您想返回的屬性,而不是包含json結果所需的所有屬性。默認情況下,JSON插件使用action bean作爲根對象來序列化爲JSON。

您應該手動配置要包含/從結果中排除的屬性。

的Java:

public List getAnagraficheList(){ return anagrafiche; } 

XML:

<!-- Result config --> 
<result type="json"> 
    <param name="includeProperties"> 
    <!-- include only properties that aren't loaded lazy --> 
    ^anagraficheList\[\d+\]\.property1, 
    ^anagraficheList\[\d+\]\.property2, 
    ^anagrapfcheList\[\d+\]\.property3 
    </param> 
    <param name="excludeNullProperties">true</param> 
</result> 
+0

檢查我的更新。謝謝! – Manlio

+0

也通過添加參數來更新 –

+0

我可以替換「property1等等」什麼?現在我遇到了問題:「ID_Tipo_Anagrafica」:0',這是另一個表的字段.. – Manlio