Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java struts2填充默认文本字段和下拉列表并绑定到模型_Java_Jsp_Struts2 - Fatal编程技术网

Java struts2填充默认文本字段和下拉列表并绑定到模型

Java struts2填充默认文本字段和下拉列表并绑定到模型,java,jsp,struts2,Java,Jsp,Struts2,我想在页面加载时填充我的文本字段值和下拉列表值。当用户单击submit时,textfield和下拉列表值应绑定到模型(Person类) 我怎样才能做到 public class Person { private String name; private String food; public void setName(String name) { this.name = name; } public String getName()

我想在页面加载时填充我的文本字段值和下拉列表值。当用户单击submit时,textfield和下拉列表值应绑定到模型(Person类)

我怎样才能做到

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>
公共类人物{
私有字符串名称;
私人串食;
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共食品(串食){
这就是食物;
}
公共字符串getFood(){
归还食物;
}
}
公共类PersonAction扩展ActionSupport实现模型驱动{
private-Map foodList=new-HashMap();
private String name=“您叫什么名字?”
私人;
公共字符串execute(){
食物列表。放置(“IC”、“冰淇淋”);
食物列表。放置(“CA”、“蛋糕”);
回归成功;
}
公共对象getModel(){
返回人;
}
}

您应该在标记s:select和s:text字段中使用name属性

<s:textfield name="name">
<s:select list="foodList" name="food" />
或者,您可以使用占位符标记属性在默认情况下显示“what's your name”文本

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


我编辑了答案,以使用modelDriven实现的操作。

我已经实现了modelDriven,我认为不需要model.name或model.food?我希望“What is your name”首先填充到Load页的文本字段中。哦,我没有注意到您正在实现modelDriven界面。在这种情况下,您可以直接输入字段,而无需输入“model”。JSP页面无法访问操作中的属性名称,因此您将无法显示“What is your name”。您需要此私有属性的getter。
<s:textfield name="name" placeholder="What is your name?">