最近在项目中无意设置的boolean变量值为isXxx,用eclipse生成相应的set和get方法,eclipse生成的的boolean类型的get方法为isXxx,前台导致取不到相应的值
- public class XxxAction extends BaseAction{
- private boolean isNumber;
- public boolean isNumber() {
- return isNumber;
- }
- public void setNumber(boolean isNumber) {
- this.isNumber = isNumber;
- }
- }
- //前面的jsp代码已省略,jsp嵌套进js代码
- var isNumber = '${isNumber}';//取得后台传过来的值,取到的值都为''
- //或者是
- var isNumber = '<s:property value="isNumber"/>';//取到的值都为''
导致以上原因是因为在Action中定义boolean类型的属性值为isXxx,跟eclipse开发工具生成的get方法名字相同,而前台取值${isNumber}或是<s:property value="isNumber"/>都会调用相应的get方法去取值,这就造成调用时没法区分是调用的是isXxx()方法还是isXxx属性,或者两者都不是.
通过El表达式获取属性值的时候,属性不一定媱定义,只需要定义对应的get、set方法也可以