以前一直用struts2做开发,没遇到什么问题。但是最近做的一个小的录入项目确实让我头疼了一回。
在进行数据提交的时候不断的报出各种各样的错误,例如
No result defined for action ***Action and result input
Class ognl.OgnlRuntime can not access a member of class ***Action with modifiers "private"
根据提示信息的意思,到项目里进行查找,发现action都定义了,而且action的result也都定义了,所有成员变量也都建立了get/set进行存取,不应该出现上面的问题啊,把类中的成员一个个进行筛选,最后终于发现,原来是成员变量命名造成的问题。
我在进行命名的时候有时候会将变量命名为aBbbCcc这样的形式,而是用MyEclipse自动创建getters/setters的话,get/set函数的命名,因为变量开头部分只有一个小写字母,紧随其后便是另外一个单词的大写首字母。因此会生成getaBbbCcc和setaBbbCcc这样的方法命,而不是一般情况的getABbbCcc和setABbbCcc,而这样的方法在struts2对页面变量进行检索的时候是找不到的。
因此,大家在进行命名的时候也要多注意啊,开头部分一定要有超过两个小写字母,否则就会出现像我这样意想不到错误。
在进行数据提交的时候不断的报出各种各样的错误,例如
No result defined for action ***Action and result input
Class ognl.OgnlRuntime can not access a member of class ***Action with modifiers "private"
根据提示信息的意思,到项目里进行查找,发现action都定义了,而且action的result也都定义了,所有成员变量也都建立了get/set进行存取,不应该出现上面的问题啊,把类中的成员一个个进行筛选,最后终于发现,原来是成员变量命名造成的问题。
我在进行命名的时候有时候会将变量命名为aBbbCcc这样的形式,而是用MyEclipse自动创建getters/setters的话,get/set函数的命名,因为变量开头部分只有一个小写字母,紧随其后便是另外一个单词的大写首字母。因此会生成getaBbbCcc和setaBbbCcc这样的方法命,而不是一般情况的getABbbCcc和setABbbCcc,而这样的方法在struts2对页面变量进行检索的时候是找不到的。
因此,大家在进行命名的时候也要多注意啊,开头部分一定要有超过两个小写字母,否则就会出现像我这样意想不到错误。