Java struts2填充默认文本字段和下拉列表并绑定到模型
我想在页面加载时填充我的文本字段值和下拉列表值。当用户单击submit时,textfield和下拉列表值应绑定到模型(Person类) 我怎样才能做到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()
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?">