我有一个很大的主Bean DetalleSolicitudTneBean.java
,其中包含大量信息。我在许多部分视图中分发信息,因为每个部分视图取决于从主视图中获取的数据。
@RequestScoped
@Named("detalleSolicitudTneBean")
@URLJoins(joins = { @URLJoin(path = "/web/detalle_solicitud_tne/{refExp}", to = "/pages/web/detalle_solicitud_tne.jsf") })
public class DetalleSolicitudTneBean extends BaseBeanImpl implements Serializable
{
@URLParameter
private String refExp;
@Inject
private TrAPIUI apiUI;
private TrExpediente trExpediente;
@URLAction(ingorePostback = true, views = { "/pages/web/detalle_solicitud_tne.jsf" })
public void cargarDatosSolicitud()
{
//a lot of code
trExpediente = apiUI.obtenerExpedientes(refExp);//returns one trExpediente object
//more code
}
public TrExpediente getTrExpediente()
{ return trExpediente; }
public void setTrExpediente(TrExpediente trExpediente)
{ this.trExpediente = trExpediente; }
}
然后我有这个主要Bean的detalle_solicitud_tne.xhtml
调用detalle_solicitud_persona
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:g="http://www.guadaltel.es/jsf2"
template="/layout/#{layout.template}/office_level.xhtml">
<ui:define name="body">
<legend>Detalles de la solicitud</legend>
<!-- I want to call my page detalle_solicitud_persona here passing the parameter trExpediente-->
<loadMyPartialView src="detalle_solicitud_persona(#{detalleSolicitudTneBean.trExpediente})"/>
<!-- many other partial view calls -->
</ui:define>
</ui:composition>
最后,我有了第二个Bean及其部分视图,该视图是从detalle_solicitud_tne.xhtml
@RequestScoped //is this scope ok?
@Named("detalleSolicitudPersona")
@URLJoins(joins = { @URLJoin(path = "/web/detalle_solicitud_persona", to = "/pages/web/detalle_solicitud_persona.jsf") })
public class DetalleSolicitudPersona extends BaseBeanImpl implements Serializable
{
@Inject
private IPersonasDao personasDao;
private Personas personas;
//I need this method to be called to fill the class atributes before get any atribute from the class
public void cargarDatosSolicitud()
{
personas = personasDao.getPersonasByexp(trExpediente);
//fill and set many other info
}
//getters y setters
public Personas getPersonas()
{ return personas; }
public void setPersonas(Personas personas)
{ this.personas = personas; }
}
及其观点detalle_solicitud_persona.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:g="http://www.guadaltel.es/jsf2">
<p:outputPanel>
<p:fieldset>
<legend>Información personal</legend>
<div class="form-group">
<g:label value="Nombre" id="nombre">
<h:outputText value="Nombre" />
</g:label>
<div>
<h:outputText id="runFilter" value="#{detalleSolicitudPersona.personas.persPrimerNombre}" />
</div>
</div>
<!-- many other class atributes -->
</p:fieldset>
</p:outputPanel>
</ui:composition>
因此,要恢复,我需要在我的第二个Bean中加载我的角色数据,具体取决于从我的主视图中收到的参数trExpediente
,以便在我的第二个局部视图中显示来自personas
的数据。 / p>