Come si esegue il rendering di una matrice di bean Java in XML con struts2?
Domanda
Il mio output dovrebbe essere qualcosa del genere:
<result>
<item>
<id>123</id>
<src>123</src>
<dst>123</dst>
</item>
<item>
<!-- ... -->
</item>
</result>
E la classe di azioni avrebbe un metodo getFoos
che restituisce una matrice di oggetti uniformi, e. g. in questo modo:
class Foo {
// ...
public long getId() { ... }
// ...
}
Sto usando XSLTResult in questo modo:
<action name="channels" method="loadAll" class="com.econemon.suite.api.impl.FooAction">
<result name="success" type="xslt">
<param name="exposedValue">foos</param>
</result>
</action>
Dato che non voglio postelaborare l'XML, non ho specificato alcun modello, dopo aver letto diversi tutorial che dicevano che avrebbe funzionato. Invece, mi dà questo errore:
javax.xml.transform.TransformerException: operazione non supportata. - [posizione sconosciuta]
Quindi ho provato ad usare un modello, ma non ha mai reso affatto un elenco. Invece ottengo
- tutte le proprietà dei bean
toString()
ed insieme - documento vuoto
- tag
<foo />
vuoto (non<foos />
, stranamente)
Non sono riuscito a trovare un tutorial che mi abbia aiutato, né su Beans - > rendering XML né XSLT. Un problema è che ho difficoltà a trovare buoni termini di ricerca: google & Quot; struts xml & Quot; e simili restituisce una quantità enorme di collegamenti completamente irrilevanti sulle cose in struts.xml
, escluso " struts.xml " dai risultati non va neanche bene, perché le pagine che sto cercando avrebbero probabilmente degli snippet di esempio struts.xml.
Penso che non avrei davvero bisogno dei modelli, quindi se è possibile farne a meno, fantastico.
Soluzione
Alcuni commentatori su questo post del blog hanno avuto lo stesso errore che hai menzionato. Forse una soluzione alternativa pubblicata sarà di aiuto?
http: // cse-mjmcl .cse.bris.ac.uk / blog / 2007/09/10 / 1189430125294.html