Мне удалось получить то, что я хочу, при отображении с наследованием, подобным этому:
ThisClassShouldntExist
BaseForm extends ThisClassShouldntExist
SpecificForm extends BaseForm
Мой переплет.xml:
<binding>
<mapping class="com.struts.form.ThisClassShouldntExist" abstract="true">
<value name="free-flow-message" field="freeFlowMessage" />
<value name="error-msg" field="errorMessage" />
</mapping>
<mapping class="com.struts.form.BaseForm" abstract="true">
<value name="prog-name" field="function" />
<value name="sub-prog-name" field="subFunction" />
</mapping>
<mapping name="cngaddress" class="com.struts.form.AddressDisplayForm">
<structure name="header">
<structure map-as="com.struts.form.BaseForm" usage="optional" />
</structure>
<value name="address" field="addressline1" usage="optional"/>
<structure name="FOOTER">
<structure map-as="com.struts.form.ThisClassShouldntExist"
usage="optional" />
</structure>
</mapping>
</binding>
Пример данных:
<?xml version="1.0" encoding="UTF-8"?>
<cngaddress>
<header>
<prog-name>prog-name</prog-name>
<sub-prog-name>sub-prog-name</sub-prog-name>
</header>
<address>address</address>
<FOOTER>
<free-flow-message>free-flow-message</free-flow-message>
<error-msg>error-msg</error-msg>
</FOOTER>
</cngaddress>
Итак, суть в том, что мне нужно «разделить» выходные данные класса BaseForm на 2 разные части выходных данных XML. Первая часть входит в <header>
, вторая в <footer>
, но я также хочу избежать наследования, просто чтобы соответствовать JibX.
Я пытался сделать что-то подобное, но не получилось:
<structure name="FOOTER">
<structure field="aFieldFromSuperClassBaseForm"
map-as="com.struts.form.ThisClassShouldntExist"
usage="optional" />
</structure>
Также пытался определить 2 <mapping>
в той же привязке для того же класса, но, конечно, это не сработало.