PersonAction.javapublic PersonAction extends AbstractAction {
private String name;
//getter、setter
.............
}
在父抽象类中,如果预定义了name的getter方法,类似
AbstractAction.javapublic abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public String getName() {
return ...;
}
}或public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}那么在页面中action提交过来的name将不被获取,什么道理,还是有什么深奥的问题在里面,往高人指点。
如果去掉父类AbstractAction 的getName()方法声明,就恢复正常,PersonAction也能获取页面提交过来的name属性值。
private String name;
//getter、setter
.............
}
在父抽象类中,如果预定义了name的getter方法,类似
AbstractAction.javapublic abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public String getName() {
return ...;
}
}或public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}那么在页面中action提交过来的name将不被获取,什么道理,还是有什么深奥的问题在里面,往高人指点。
如果去掉父类AbstractAction 的getName()方法声明,就恢复正常,PersonAction也能获取页面提交过来的name属性值。
为属性x设置值a,相应于调用 你的action.getX().setA(),如果action.getX()没有,就会调用action.setX()设置一个新的X.
public PersonAction extends AbstractAction {
private String name;
public String getName(){
return name;
}
public void setName(String name) {
this.name = name;
}
}父类(这样写法是有问题,页面Form提交的name属性取不到):package test;
public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}父类(如果这样写就没问题):
父类(这样写法是有问题,页面Form提交的name属性取不到):package test;
public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
}
package test;
public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}这个也没错啊,一样可以取值啊。
public abstract String getName();
}
在 myEclipe 显示有错误 改成
public abstract AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}
可用,测试了可以取到值
public abstract String getName();
}
补充楼上
继续修改
public abstract class AbstractAction extends com.opensymphony.xwork2.ActionSupport {
public abstract String getName();
}
谢谢,可是看不到你写的前后两个有啥区别哈~~大家的都可以取值,看上去肯定就是我代码有问题了,可是别的地方全都一样,能否取到值差别仅是是否注释掉父类的这个getName()抽象方法了。
什么意思?这个和struts有关吗。我这样写的确是在父类中需要调用子类的name属性,所以就在父类这里声明了一下。
现在还找不到原因,暂时做个折中的办法,把name及其getter和setter都挪到父类中来,子类就不写了。谢谢大家,再等等几天看看有没有更好的建议就结贴了。