如何从其他控制器调用带有requestParameterMap的方法

时间:2013-11-27 21:00:04

标签: java jsf

我想从其他控制器调用带有requestParameterMap的方法。我怎么称呼这种方法。我想在不修改的情况下重用该方法。

第一个控制器:

public void visualizarPartida(){
 refNumPart ='data'
 estado = 'data'
 //ETC.........
 partidaDirectaController.visualizarPartidaDetalle(?????????) /*doubt*/

 }

第二控制器:

@ManagedBean
@SessionScoped
public class PartidaDirectaController {

public void visualizarPartidaDetalle() {
    Map<String, String> params = FacesContext.getCurrentInstance()
   .getExternalContext().getRequestParameterMap();
    PartidaDirectaResultBean obj = new PartidaDirectaResultBean();
    obj.setRefNumPart(params.get("refNumPart"));
    obj.setEstado(params.get("estado"));
       //ETC...
    }

1 个答案:

答案 0 :(得分:1)

只需将您希望从其他方法重用的代码重构为将数据作为参数的新方法,以便您可以从这两种方法中调用它。

public void visualizarPartida() {
    refNumPart = "data"; // Please write code which compiles. Also in questions!
    estado = "data";
    partidaDirectaController.visualizarPartidaDetalle(refNumPart, estado);
}
public void visualizarPartidaDetalle() {
    Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
    visualizarPartidaDetalle(params.get("refNumPart"), params.get("estado"));
}

public void visualizarPartidaDetalle(String refNumPart, String estado) {
    PartidaDirectaResultBean result = new PartidaDirectaResultBean();
    result.setRefNumPart(refNumPart);
    result.setEstado(estado);
    // Etc...
}