代码之家  ›  专栏  ›  技术社区  ›  Dejell

使用p:commandButton jsf提交表单

  •  2
  • Dejell  · 技术社区  · 14 年前

    我有一个关于提交表单内容的问题 p:commandbutton 这往往以ajax的方式工作。

    如果我有这样的代码:

    <f:verbatim  rendered="#{myBean.constructor}"></f:verbatim >
     <h:form prependId="false">
              ....            
                .....
    <p:commandButton   value="#{msg.Add_Parameter_Set}" update="addParameterSetPnl,msgs"  action="#{myBean.initNewParametersSet}"/>
      </h:form>
    

    我认为提交表单时,只会呈现表单的内容/指定的内容 update 参数。。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Community CDub    7 年前

    不应该伤害你。如果你在里面做昂贵的东西,你应该把它移到构造器那里, @PostConstruct 或问题bean的操作方法,或引入延迟加载或阶段嗅探。

    // In Constructor..
    public Bean() {
        constructed = getItSomehow();
    }
    
    // ..or @PostConstruct..
    @PostConstruct
    public void init() {
        constructed = getItSomehow();
    }
    
    // ..or action method..
    public String submit() {
        constructed = getItSomehow();
        return "outcome";
    }
    
    // ..or lazy loading..
    public boolean getConstructed() {
        if (constructed == null) constructed = getItSomehow();
        return constructed;
    }
    
    // ..or phase sniffing (this one updates during render response only).
    public boolean getConstructed() {
        if (FacesContext.getCurrentInstance().getRenderResponse()) constructed = getItSomehow();
        return constructed;
    }