Java 无参数构造函数中的Struts2字符串值更改为空字符串
我有以下java对象Java 无参数构造函数中的Struts2字符串值更改为空字符串,java,struts2,Java,Struts2,我有以下java对象 public class TestClass { private String testString; private int testInt; public TestClass(){ this.testInt = 1; this.testString = "test"; } ... getters and setters 我已经在我的jsp页面中包含了以下Struts2textfields <s:textfield name="t
public class TestClass {
private String testString;
private int testInt;
public TestClass(){
this.testInt = 1;
this.testString = "test";
}
... getters and setters
我已经在我的jsp
页面中包含了以下Struts2
textfields
<s:textfield name="test.testString" />
<s:textfield name="test.testInt" />
我没有在代码中初始化
test
对象,而是依赖Struts2
使用no arg
构造函数<当无参数
构造函数将字符串
置于字段中,但测试
字段中的1
显示后,code>Struts2将用空的字符串
覆盖字段。为什么会发生这种情况?我认为发生的情况是,在提交表单时,Struts2
将空的test.testString
字段转换为空字符串,并将其放在Java字段中。显然,Struts2
不会将空的int
字段转换为0。我认为在提交表单时,Struts2
会将空的test.testString
字段转换为空字符串,并将其放在Java字段中。显然,Struts2
不会将空的int
字段转换为0。查看将变量设置为公共而不是私有是否会显示“测试”文本。。?当变量是该类的私有变量时,使用点运算符访问值不应该起作用,但我对Struts知之甚少。您还可以尝试使用getter而不是dot操作符。至于为什么int有效而字符串无效,我不知道。我有两个字段的公共getter和setter,这是Struts所期望的。在进一步研究之后,我认为Struts将无输入值视为空字符串并覆盖该值。我不知道为什么它对int字段没有相同的作用。有趣的是,他们期望得到这些getter,但随后提到使用点运算符。这对我来说很奇怪。你能试试吗?或者说,这不管用——getter和setter正在起作用。我可以在我的调试器中看到“test”值被替换。查看将变量设置为公共而不是私有是否显示“test”文本。。?当变量是该类的私有变量时,使用点运算符访问值不应该起作用,但我对Struts知之甚少。您还可以尝试使用getter而不是dot操作符。至于为什么int有效而字符串无效,我不知道。我有两个字段的公共getter和setter,这是Struts所期望的。在进一步研究之后,我认为Struts将无输入值视为空字符串并覆盖该值。我不知道为什么它对int字段没有相同的作用。有趣的是,他们期望得到这些getter,但随后提到使用点运算符。这对我来说很奇怪。你能试试吗?或者说,这不管用——getter和setter正在起作用。我可以在调试器中看到“test”值被替换。