2017-06-25 7 views
0

JSFとPrimeFaces 6.1でコードを作成し始めました。
マイいるindex.xhtmlは、次のようになります。JSFのカウンタBeanをインクリメントできないAjaxの更新

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"> 

<h:body> 
    <h:inputText id="counter"> 
     <p:ajax update="out" listener="#{counterBean.increment}" /> 
    </h:inputText> 
    <h:outputText id="out" value="#{counterBean.count}" /> 
</h:body> 
</html> 

そしてCounterBean.javaは次のとおりです。

import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 

@ManagedBean 
@SessionScoped 
public class CounterBean implements Serializable { 

    private int count = 0; 

    public void increment() { 
     count++; 
    } 

    public int getCount() { 
     return count; 
    } 
    public void setCount(int name) { 
     this.count = name; 
    } 
} 

そして私はのinputTextとのoutputTextのためのウィジェットが表示されている参照にもかかわらず、作られた全くAJAX呼び出しがありませんinputTextの値が変更されたとき。 同様に、inputTextが変更されても、outputTextの値は変更されません。

上記のコードで何が問題になっていますか?あなたは2つのこと、 が欠落している

+0

可能な複製/リスナーメソッドが呼び出されていないか、入力値が更新されていません](https://stackoverflow.com/questions/2118656/commandbutton-commandlink-ajax-action-listener-method-not-invoked-or-input-value) – Kukeltje

+0

#7重複 – Kukeltje

答えて

1

<h:head></h:head>必要なJavaScriptライブラリ、 を含めると、あなたはh:formであなたの入力をラップする必要があること:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:p="http://primefaces.org/ui"> 
<h:head></h:head> 
<h:body> 
    <h:form> 
     <h:inputText id="counter"> 
      <p:ajax update="out" listener="#{counterBean.increment}"/> 
     </h:inputText> 
     <h:outputText id="out" value="#{counterBean.count}"/> 
    </h:form> 
</h:body> 
</html> 
[のcommandButton /のcommandLink/AJAXアクションの
+0

ありがとうございます。私は 'h:head'の理由を知っていますが、' h:form'の必要はありません。相互リンクされた要素(またはajax対応要素)は 'h:form'の中になければなりませんか?これを説明している良い文書はありますか? – user2250246

+0

これらの「基本的な」問題の多くは、すでにstackoverflowでQ/Aを持っています(詳細な説明が多い場合があります)。これにより断片化が防止されます – Kukeltje

関連する問題