0

こんにちは、私は現在、送信時に ajax を使用して、入力ボックスの下の同じページにユーザーが入力したメッセージを表示する Web ページを持っています。 、メッセージ 2 などはすべてその下に表示されますか?

これに最適な方法は何ですか? また、ユーザーが毎回送信ボタンを押さなくてもこれを行う方法はありますか?

これはこれまでの私のコードです:

<h:body>
    <h3>JSF 2.0 + Ajax Hello World Example</h3>

    <h:form>
       <h:inputText id="name" value="#{helloBean.name}"></h:inputText>
       <h:commandButton value="Welcome Me">
         <f:ajax execute="name" render="output" />
       </h:commandButton>

       <h2><h:outputText id="output" value="#{helloBean.sayWelcome}" /></h2>    
    </h:form>

</h:body>

私の豆

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

import java.io.Serializable;

@ManagedBean
@SessionScoped
public class HelloBean implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;

    public String getName() {
       return name;
    }
    public void setName(String name) {
       this.name = name;
    }
    public String getSayWelcome(){
       //check if null?
       if("".equals(name) || name ==null){
        return "";
       }else{
        return "Ajax message : Welcome " + name;
       }
    }
}
4

1 に答える 1

1

まず、Bean を変更する必要があります。List<String>すべてのメッセージを格納するには、属性を aにします。

その後、リストを表示するには、 ;outputのすべての要素を表示できるコンポーネントに変更する必要があります。ListVG dataTable.

また、アプリケーションはいくつかのロジックを実行する (nameリストに追加する) 必要があるため、ajax リクエストでアクション メソッドを呼び出す必要があります。

于 2013-10-18T19:24:04.797 に答える