【问题标题】:calling method on link on coming from menu在来自菜单的链接上调用方法
【发布时间】:2014-01-08 08:02:29
【问题描述】:

我怎样才能调用从另一个屏幕到新屏幕的方法。我想从菜单调用屏幕的加载方法。但它不应该在同一屏幕上调用加载方法.. 实际上,每当我来自另一个屏幕时,我都会调用 clear fields 方法,但是在同一屏幕上,如果它通过搜索按钮加载,它确实会调用 clear 方法。

   <script type="text/javascript"> 
  window.onbeforeunload = function()
  {
     exitFunc();
     alert("test 1");
  }
</script> 

<h:form id="exitForm"> -->
<p:remoteCommand name="exitFunc" actionListener="#{letterCancellationManager.clearMaster}" /> 
</h:form>
<f:metadata>
  <f:event type="preRenderView" listener="#{letterCancellationManager.clearMaster}"/>
</f:metadata>

我已经尝试过了,但每次加载时都会清除字段,但我想清除来自另一个屏幕的字段。请回复

【问题讨论】:

  • 一个设计良好的 jsf 视图应该在您进入时清除字段。您是否为托管 bean 使用了正确的范围?

标签: java jsf jakarta-ee


【解决方案1】:

我已经解决了这个问题

清除缓存 管理器支持 bean:


private String id; //its setter getters
________________________________________________________________________________

//clear method
public void clearMaster()
{
 try
 {
    if(id!=null && id.equals("1"))
    {
     byRfq="";
     byNsn="";
     byDoc="";
     byLetterNo="";
     byLetterDate=null;
     byEmailDate=null;      
    }
  }catch(Exception ee){}
}
________________________________________________________________________________

//write inside the method which is calling default on master
try{
 int id = Integer.valueOf(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
 this.id=id+"";      
}catch(Exception ee){}
id="";
________________________________________________________________________________
inside UI JSF VIEW of screen
<f:view >
<f:metadata>
<f:viewParam name="id" value="#{letterCancellationManager.id}" />
<f:event type="preRenderView" listener="#{letterCancellationManager.clearMaster}"/>     
</f:metadata>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-19
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    相关资源
    最近更新 更多