我正在测试如果我在我的操作中设置了一个整数字段,并且有人试图String
为它提供一个值,会发生什么。
例如:
public class FooAction extends ActionSupport
{
private Integer foo;
public Integer getFoo()
{ ... }
public void setFoo(Integer foo)
{... }
public String execute()
{
System.out.println( foo );
return SUCCESS;
}
}
如果我创建以下表单并尝试提交:
<form method="post" action="/foo.action">
<input type="text" name="foo" />
<input type="submit" value="go" />
</form>
然后,如果我在文本框中只提供一个数字,它就可以正常工作。
但是,如果我在文本框中提供诸如“bar”之类的字符串,则会发生以下情况:
1) 在 IDE 的输出窗口中,我看到有关尝试将字符串值设置为整数字段的异常的警告。
2) 紧接着,我将 'null' 视为foo
.
3)但是,奇怪的是,在我设置为在提交表单时显示的 .jsp 文件中,我有以下行:
<h2><s:property value="foo" /></h2>
jsp 的这一行的输出是bar
(这是我在表单中输入的内容),即使该foo
字段是整数并且我null
在尝试输出它时进入了输出窗口。
谁能解释一下这笔交易是什么?