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这个属性,也不会报错.
分享到:
相关推荐
// 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: ...
PropertyInfo property = typeof(T).GetProperty(DefaultSortItem, BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.IgnoreCase, null, null, new Type[0], null);...
if (source == null) return ""; List<string> headers = new List(); grid.Columns.ToList().ForEach(col => { if (col is DataGridBoundColumn) { headers.Add(FormatCSVField(col.Header.ToString())); ...
i = 2; } if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { target = {}; } for (; i ; ++i) { options = arguments[i]; // Only deal with non-null/...
在使用BeanUtils时,如果JavaBean对象为null,`getProperty()`和`setProperty()`方法会抛出NullPointerException。为了避免这种情况,可以在调用这些方法前先检查对象是否为null。 8. **线程安全** BeanUtils工具...
Class.forName(props.getProperty("onlyfun.caterpillar.driver")); } @Override public Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, passwd); } @...
textBox.SetBinding(TextBox.TextProperty, new Binding("MyText") { Source = viewModel }); ``` 3. **根据控件名称动态创建**: 要动态创建控件,我们可以创建一个方法,接收控件类型和一些额外参数作为输入。...
public void excel2pdf(String source, String target) { System.out.println("启动Excel"); long start = System.currentTimeMillis(); ActiveXComponent app = new ActiveXComponent("Excel.Application"); ...
在Java编程中,数据连接池(Data Source或Connection Pool)是一种管理数据库连接的机制,它提高了应用程序的性能和效率。JDBC(Java Database Connectivity)是Java中用来与数据库交互的标准API。在这里,我们讨论...
2. **配置Maven**: - Maven是Java项目管理的重要工具,用于构建、依赖管理和项目信息管理。在IDEA中配置Maven,首先通过`File` -> `Settings`进入设置页面。 - 新建Maven项目,选择`File` -> `New` -> `Project`...
6. 最后,通过`getProperty(envKey)`方法返回指定环境变量的值,如果找不到则返回null。 这个方法对于Windows系统是有效的,但在其他操作系统如Linux或macOS上可能无法工作,因为它们的环境变量获取方式不同。在非...
1. **属性设置与获取**:BeanUtils提供了一系列静态方法,如`getProperty()`和`setProperty()`,用于直接通过字符串形式的属性名来设置或获取Bean对象的属性值,避免了传统的反射机制,减少了代码量,提高了开发效率...
fileChooser.setCurrentDirectory(new File(System.getProperty("user.home"))); // 设置初始目录为用户家目录 fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // 允许选择文件和目录 if ...
在这个例子中,我们首先创建一个`Properties`对象,然后通过`FileInputStream`打开配置文件,使用`load()`方法加载属性,最后用`getProperty()`获取指定键的值。 2. 使用`ResourceBundle`类 `ResourceBundle`类...
在上述代码中,`User`类是我们的自定义Bean,`BeanUtils.copyProperties()`方法会将`sourceUser`的所有非null属性值复制到`targetUser`上。需要注意的是,源Bean和目标Bean的属性名必须相同,且类型兼容,否则复制将...
- **属性访问**:BeanUtils提供了`getProperty()`和`setProperty()`方法,可以方便地读取和设置JavaBean的属性值,无需关心具体的getter和setter方法。 - **属性复制**:`copyProperties()`方法可以将一个JavaBean...
3. **空值处理**:当设置的属性值为null时,`setProperty()`方法会调用setter方法并将参数设为null。对于某些属性,这可能是不期望的行为,需要在代码中进行处理。 4. **异常处理**:在使用`copyProperties()`时,...
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 = ...