代码之家  ›  专栏  ›  技术社区  ›  Konrad Garus

JSF2-f:ajax元素的作用域是什么?

  •  1
  • Konrad Garus  · 技术社区  · 14 年前

    <h:form>
        <h:outputText value="Tag:" />   
        <h:inputText value="#{entryRecorder.tag}">
            <f:ajax render="category" />
        </h:inputText>
        <h:outputText value="Category:" />
        <h:inputText value="#{entryRecorder.category}" id="category" />
    </h:form>
    

    我想要达到的目的是:当你在“tag”字段中输入时 entryRecorder.tag category 现场。这种变化应该体现在形式上。

    问题:

    1. EntryRecorder ? 对于多个AJAX请求,请求可能不能令人满意,而会话不能在每个会话中使用多个浏览器窗口。
    2. 如何注册我的帐户 updateCategory() 行动
    2 回复  |  直到 14 年前
        1
  •  0
  •   Konrad Garus    14 年前

    回答点2:

    <h:inputText styleClass="id_tag" value="#{entryRecorder.tag}"
        valueChangeListener="#{entryRecorder.tagUpdated}">
        <f:ajax render="category" event="blur" />
    </h:inputText>
    

    豆子:

    @ManagedBean
    @ViewScoped
    public class EntryRecorder {
        private String tag;
        private String category;
        @EJB
        private ExpenseService expenseService;
    
        public void tagUpdated(ValueChangeEvent e) {
            String value = (String) e.getNewValue();
            setCategory(expenseService.getCategory(value));
        }
    }
    

        2
  •  0
  •   Toni Penya-Alba    14 年前

    xhtml格式:

    <h:form>
        <h:outputText value="Tag:" />
        <h:inputText value="#{entryRecorder.tag}">
            <f:ajax render="category" event="valueChange"/>
        </h:inputText>
        <h:outputText value="Category:" />
        <h:inputText value="#{entryRecorder.category}" id="category" />
    </h:form>
    

    豆子:

    @ManagedBean
    @RequestScoped
    public class EntryRecorder {
        private String tag;
        private String category;
    
        public String getCategory() {
            return category;
        }
    
        public String getTag() {
            return tag;
        }
    
        public void setCategory(String category) {
            this.category = category;
        }
    
        public void setTag(String tag) {
            this.tag = tag;
            tagUpdated();
        }
    
        private void tagUpdated() {
            category = tag;
        }
    }