簡體   English   中英

struts2填充默認文本字段和下拉列表並綁定到模型

[英]struts2 populating default textfield and dropdown and binding to model

我想在頁面加載時填充我的textfield值和dropdown值。 當用戶單擊“提交”時,應將文本字段和下拉值綁定到模型(“人”類)。

我該怎么辦?

public class Person {

    private String name;
    private String food;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setFood(String food) {
        this.food = food;
    }

    public String getFood() {
        return food;
    }
}


public class PersonAction extends ActionSupport implements ModelDriven  {

    private Map<String,String> foodList = new HashMap()<String,String>;
    private String name = "What is your name?"
    private Person person;

    public String execute() {
        foodList.put("IC","Ice Cream");
        foodList.put("CA","Cake");
        return SUCCESS;
    }

    public Object getModel() {
        return person;
    }

}

<s:form action="addPerson" >
    <s:textfield name="name">
    <s:select list="foodList" name="" />
    <s:submit type="button" name="submit" />
</s:form>

您應該在標簽s:select和s:textfield中使用name屬性。

<s:textfield name="name">
<s:select list="foodList" name="food" />

這樣,該字段將在操作中與getModel()。name和getModel()。food綁定。

要顯示“您叫什么名字”文本,您有兩個選擇:

在動作類中,將人員姓名設置為“您叫什么名字”。

public String execute() {
    person = new Person();
    person.setName("What is your name?");
    foodList.put("IC","Ice Cream");
    foodList.put("CA","Cake");
    return SUCCESS;
}

或者,您可以使用占位符標簽屬性在默認情況下顯示“您的名字”文字。

<s:textfield name="name" placeholder="What is your name?">

我編輯了答案,以使用modelDriven實現的動作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM