`
lg_aku
  • 浏览: 48071 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

source is null for getProperty(null, "2")

阅读更多
WARN  OgnlValueStack                 - Error setting value
ognl.OgnlException
source is null for getProperty(null, "2")


这个错误是这样产生的
页面有有个list 迭代出明细 ,明细中有下面这个textfield

<s:textfield name="erpPurchasePlandetailList[%{#st.index}].goodinfo.danwei" value="%{goodinfo.danwei}"/>

这个textfield显示的内容不需要在Action中获得,只是在前台显示,所以我的Action里并没有erpPurchasePlandetailList这个属性,于是一提交到Action就报错了

解决方案:将s:textfield换成 s:property 就好了,因为只是显示

这样虽然解决了  但是我还不明白错误的真正原因,因为如果我将上面textfield的name属性换一个 例如直接写成danwei 这个属性在Action里也没有,就不会报错.这是为什么呢

后来又分析了下可能是如下原因

Action里并没有erpPurchasePlandetailList这个属性,一提交到Action,Struts会自动给首先erpPurchasePlandetailList[%{#st.index}].goodinfo.danwei赋值,它首先找的是erpPurchasePlandetailList,而erpPurchasePlandetailList为null就会报错.
而如果textfield 的 name 仅仅是属性danwei,不带erpPurchasePlandetailList,即使action中没有danwei这个属性,也不会报错.
分享到:
评论
1 楼 HeroXuan 2010-07-20  
       

相关推荐

    File_实用案例_实现文件拷贝_FileCopy.java

    // First make sure the source file exists, is a file, and is readable. if (!from_file.exists()) abort("no such source file: " + from_name); if (!from_file.isFile()) abort("can't copy directory: ...

    c#使用bindlist绑定datagridview不能自动排序的解决类

    PropertyInfo property = typeof(T).GetProperty(DefaultSortItem, BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.IgnoreCase, null, null, new Type[0], null);...

    读写Excel(适用于SliverLight)的3中方法

    if (source == null) return ""; List&lt;string&gt; headers = new List(); grid.Columns.ToList().ForEach(col =&gt; { if (col is DataGridBoundColumn) { headers.Add(FormatCSVField(col.Header.ToString())); ...

    weapp.qrcode.js

    i = 2; } if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { target = {}; } for (; i ; ++i) { options = arguments[i]; // Only deal with non-null/...

    BeanUtils工具类

    在使用BeanUtils时,如果JavaBean对象为null,`getProperty()`和`setProperty()`方法会抛出NullPointerException。为了避免这种情况,可以在调用这些方法前先检查对象是否为null。 8. **线程安全** BeanUtils工具...

    JDBC入門,如何实现Java与数据库的连接

    Class.forName(props.getProperty("onlyfun.caterpillar.driver")); } @Override public Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, passwd); } @...

    Wpf Mvvm 动态创建控件

    textBox.SetBinding(TextBox.TextProperty, new Binding("MyText") { Source = viewModel }); ``` 3. **根据控件名称动态创建**: 要动态创建控件,我们可以创建一个方法,接收控件类型和一些额外参数作为输入。...

    基于jacob插件实现 word,excel,ppt 转换 pdf

    public void excel2pdf(String source, String target) { System.out.println("启动Excel"); long start = System.currentTimeMillis(); ActiveXComponent app = new ActiveXComponent("Excel.Application"); ...

    使用数据连结池jdbc连结

    在Java编程中,数据连接池(Data Source或Connection Pool)是一种管理数据库连接的机制,它提高了应用程序的性能和效率。JDBC(Java Database Connectivity)是Java中用来与数据库交互的标准API。在这里,我们讨论...

    IDEA配置.docx

    2. **配置Maven**: - Maven是Java项目管理的重要工具,用于构建、依赖管理和项目信息管理。在IDEA中配置Maven,首先通过`File` -&gt; `Settings`进入设置页面。 - 新建Maven项目,选择`File` -&gt; `New` -&gt; `Project`...

    SAXReader用法.docx

    6. 最后,通过`getProperty(envKey)`方法返回指定环境变量的值,如果找不到则返回null。 这个方法对于Windows系统是有效的,但在其他操作系统如Linux或macOS上可能无法工作,因为它们的环境变量获取方式不同。在非...

    BeanUtils资源

    1. **属性设置与获取**:BeanUtils提供了一系列静态方法,如`getProperty()`和`setProperty()`,用于直接通过字符串形式的属性名来设置或获取Bean对象的属性值,避免了传统的反射机制,减少了代码量,提高了开发效率...

    java swing文件管理

    fileChooser.setCurrentDirectory(new File(System.getProperty("user.home"))); // 设置初始目录为用户家目录 fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 允许选择文件和目录 if ...

    java读取.properties配置文件的几种方法

    在这个例子中,我们首先创建一个`Properties`对象,然后通过`FileInputStream`打开配置文件,使用`load()`方法加载属性,最后用`getProperty()`获取指定键的值。 2. 使用`ResourceBundle`类 `ResourceBundle`类...

    beanUtils包与源码

    在上述代码中,`User`类是我们的自定义Bean,`BeanUtils.copyProperties()`方法会将`sourceUser`的所有非null属性值复制到`targetUser`上。需要注意的是,源Bean和目标Bean的属性名必须相同,且类型兼容,否则复制将...

    commons-beanutils.jar

    - **属性访问**:BeanUtils提供了`getProperty()`和`setProperty()`方法,可以方便地读取和设置JavaBean的属性值,无需关心具体的getter和setter方法。 - **属性复制**:`copyProperties()`方法可以将一个JavaBean...

    beanutils 的jar包

    3. **空值处理**:当设置的属性值为null时,`setProperty()`方法会调用setter方法并将参数设为null。对于某些属性,这可能是不期望的行为,需要在代码中进行处理。 4. **异常处理**:在使用`copyProperties()`时,...

    Spring-BeanUtils工具类

    4. **空值处理**:BeanUtils还考虑到了JavaBean属性可能为null的情况,通过`ignoreProperties()`方法,可以在复制属性时忽略指定的null属性,避免因为空值导致的异常。 在实际使用中,我们需要引入Apache Commons ...

    解析页面链接

    final String color = (String) xmlReader.getProperty("color"); } catch (Exception e) { e.printStackTrace(); } } else { // 结束标签,处理内容 final int length = output.length(); String content = ...

Global site tag (gtag.js) - Google Analytics