0

您好,我目前有一个网页在提交时使用 ajax 来显示用户在输入框下方同一页面上输入的消息,我想知道是否可以记录所有输入的消息,例如消息 1 ,消息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。使属性 aList<String>存储所有消息。

之后,要显示列表,您需要更改output为允许显示 ; 的所有元素的组件List。。dataTable_

此外,您需要在 ajax 请求中调用一个操作方法,因为您的应用程序需要执行一些逻辑(添加name到列表中)。

于 2013-10-18T19:24:04.797 回答