关于Struts2 的set get方法问题

今天在做项目的时候无意间发现一个很奇怪的问题首先我在pojo包中定义了一个叫Num的类,里面有one,two,three,four四个私有变量,分别写了setget方法,... 今天在做项目的时候无意间发现一个很奇怪的问题 首先我在pojo包中定义了一个叫Num的类,里面有one,two,three,four四个私有变量,分别写了set get方法,又写了一个JSP里面写了一个form表单,里面有4个input标签,name分别是num.one,num.two, num.three ,num.four,然后form提交到myaction!add.action,这个action在struts.xml里配了一下,是指向action包中的MyAction.java中的add方法,
MyAction.java这个里面定义了一个Num类型的变量num,然后我在add方法里system.out.println了one,two,three,four四个值。
一开始我只在MyAction.java里写了num的set方法,然后开了服务器运行了一下我在4个input里分别输了1 2 3 4然后提交表单,发现控制台输出的是null2nullnull,说明只有num.two得到了值。
第二次我在MyAction.java中又加了num的get方法,结果输出的是1234,说明都得到值了。
我就觉得奇怪了,当后台需要向前一个显示页面取值的时候才会调set方法,显示页面需要向前台拿值的时候才会调get方法,这里应该只会调set方法,但为什么不写get方法就拿不到值呢,而且为什么又只拿到了num.two这个值
求解答
这是HTML部分代码:
<body>
<form name="form" action="myaction!add.action">
<table>
<tr>
<td><input type="text" name="num.one"/></td>
<td><input type="text" name="num.two"/></td>
<td><input type="text" name="num.three"/></td>
<td><input type="text" name="num.four"/></td>
<td><input type="submit" /></td>
</tr></table>
</form>
</body>
MyAction.java代码:
public class MyAction {
private Num num;
public void setNum(Num num) {
this.num = num;
}

/*public Num getNum() {
return num;
}
这个get方法不加就只能得到num.two的值,加了就能得到4个值*/

public void add(){
System.out.println(num.getTwo());
}
}

Num.java代码贴不下了 就是定义了四个私有变量one,two,three,four都是String类型,都分别定义了get set方法
展开
 我来答
两厢遗忘
推荐于2016-09-21 · TA获得超过629个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:559万
展开全部
num.one,num.two, num.three ,num.four
这四个是什么类型的属性?
最好贴出你的关键代码看看
更多追问追答
追问
这四个是String类型,代码我贴一部分吧
追答
我很奇怪怎么会出现null值
首先你要搞清楚的是:num的实例化之后,并且你取得这个实例化对象才能给这个对象的属性复制。。
以你目前的代码看,应该是还有其他环节出现问题了。。。
不然的话,你要是直接点击提交按钮,是会有空字符串,但不会有null
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式