Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无参数构造函数中的Struts2字符串值更改为空字符串_Java_Struts2 - Fatal编程技术网

Java 无参数构造函数中的Struts2字符串值更改为空字符串

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

我有以下java对象

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”值被替换。