我正在搜索获取列表作为JSON页面。我目前正在使用hibernate + struts,我已添加到我的构建路径JSON Struts2 plugin
。
我只是配置了我的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,但是我有不需要的字段,如Ruolo
,Scontrino
,Catalogo
等,我在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 :(得分:0)
您应该将json结果配置为仅包含要返回的属性,而不是json结果所需的所有属性。默认情况下,JSON插件使用action bean作为根对象来序列化为JSON。
您应手动配置要在结果中包含/排除的属性。
<强>爪哇:强>
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>