繁体   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