`
陈谏辉
  • 浏览: 49280 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

dwr 获取持久层对象报错

阅读更多

dwr 获取数组列表对象,列表里的对象是数据库持久层的对象Attribute,结果在视图层,获取Attribute的值报错,在页面提示 data is null。

根据报错信息,发现Attribute对象内的映射关系迟缓加载有问题,实例如下:

js代码:

function getAttributeSupListJ(attributePath,attributeId,newAttributeId){
attributeDwr.getAttributeSupList(attributePath+"."+newAttId,__doCreateAttributeList);
}
function __doCreateAttributeList(data){
if(!data) return;
if(data.length<1) return;
var obj=document.getElementById("att_group_1");
var mySelect = document.createElement("select");
mySelect.id = new_att_group_1;
if(window.addEventListener) // Mozilla, Netscape, Firefox
{
mySelect.addEventListener('change', getAttributeSupListJ,false);//添加事件
}
else// IE
{
mySelect.attachEvent('onchange',getAttributeSupListJ);//添加事件
}
obj.appendChild(mySelect);
if(obj){
//DWRUtil.removeAllOptions(new_att_group_1);
DWRUtil.addOptions(new_att_group_1,data,'catalogId','catalogName');
}
}

DWR接口定义:

public List getAttributeSupList(String attributePath)

DWR实现类定义:

public List getAttributeSupList(String attributePath){......}

解决办法:

1、把Attribute.hbm.xml 的映射关系lazy="true" 改成lazy="false"

<set name="productAttributeValues" table="product_attribute_value" lazy="false" inverse="true" sort="unsorted">
<key>
<column name="attributeId"/>
</key>
<one-to-many class="com.dingDang.mall.common.model.catalog.ProductAttributeValue"/>
</set>

2、新建一个临时存储Attribute 对象数据的 对象:

AttributeVO {

private Integer catalogId;
private String catalogName;
private String path;//
private String pathName;
private String data;
private String flag;
private Object object;

修改 DWR实现类定义:

public List getAttributeSupList(String attributePath){
List list = (List)attributeMenuUtil.getAttributesMap().get(attributePath);
List results=new ArrayList();
if(list!=null && list.size()>0){
AttributeVo attributeVo= null;
Attribute att = null;
for(int i=0;i<list.size();i++){
attributeVo= new AttributeVo ();
att = (Attribute)list.get(i);
attributeVo.setCatalogId(att.getAttributeId());
attributeVo.setCatalogName(att.getAttributeName());
attributeVo.setPath(att.getAttributePath());
attributeVo.setData(att.getDefaultValue());
attributeVo.setFlag(att.getInputType()+"");
results.add(i, attributeVo);
}
}
return results;
}

分享到:
评论

相关推荐

    DWR+tomcat5.0配置报错解决方案

    NULL 博文链接:https://lionelxx777.iteye.com/blog/358193

    dwr的DTD文件下载

    这几天无聊开发了一个程序,需要AJAX要求也不高就使用了DWR,但是程序始终报错,因为以前用过DWR,所以最后才发现是DTD文件路径已经被改变了,这里留下一个以防程序又找不到DTD

    DWR如何获得返回对象

    DWR如何获得返回对象 DWR如何获得返回对象 DWR如何获得返回对象

    dwr3.0 配置文件

    dwr3.0的web.xml的配置文件,该文件是从dwr.jar文件中拷贝出来的

    DWR与Jsp内置对象关系

    3. **错误处理**:DWR调用的服务器端方法如果抛出异常,可以捕获并将异常信息返回给客户端,此时可以利用DWR的错误处理机制,而不是依赖JSP的`exception`内置对象。 4. **页面更新**:DWR可以更新客户端的HTML元素...

    DWR框架怎么返回对象

    对于返回JavaBean的方法,DWR会自动将JavaBean转换为JavaScript对象。配置如下: ```xml &lt;param name="class" value="/com/dwr/TestClass"/&gt; ``` 在JavaScript中,你将得到一个JavaScript对象,可以...

    JAVA AJAX中使用dwr获取后台list并在页面用表格显示

    在这个特定的项目中,"JAVA AJAX中使用dwr获取后台list并在页面用表格显示",我们将探讨如何结合Direct Web Remoting (DWR) 框架来实现这一功能,同时涉及到二级联动的概念。 DWR是一个开源的Java库,它允许...

    dwr+spring实例

    DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR的出现极大地增强了Web应用的用户体验,因为它允许开发者创建几乎与桌面...

    DWR3 对象传输与配置 源代码

    在这个"DWR3 对象传输与配置 源代码"示例中,我们将深入探讨DWR3的核心功能、配置方法以及如何在Java环境中集成和使用它。 首先,DWR3 提供了一个安全、高效的机制,使得开发者可以方便地在浏览器端调用服务器端的...

    dwr的例子 反向AJAX 实现时时提醒

    要实现即时提醒,你可能需要创建一个JavaScript函数来监听特定的事件(如定时检查、用户交互等),然后使用DWR调用服务器端的检查或获取新消息的方法。服务器端的方法接收到请求后,检查是否有新数据,如果有,则...

    struts2+hibernate+spring+dwr整合

    2. Spring 作为整体的容器,管理所有组件的生命周期,包括Struts2的Action、Hibernate的数据访问对象(DAO)以及DWR的远程接口。Spring的DI特性使得各组件之间的依赖关系得以解耦。 3. Hibernate 作为持久层框架,...

    DWR 初始,返回字符串&对象&列表

    当你需要从服务器获取一组数据时,DWR可以通过返回列表来实现。比如,你可能有一个`getUsers()`方法,它返回一个`List&lt;User&gt;`。DWR会将这个列表转换为JavaScript数组,每个元素都是之前提到的`Person`对象的...

    dwr实例,从后台取数据显示

    Direct Web Remoting (DWR) 是一种开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,从而实现动态Web应用程序。DWR的主要功能是通过AJAX技术在客户端和服务器之间进行实时通信,使得用户界面...

    JAVA AJAX中使用DWR获取后台list并在页面 用表格动态显示

    在这个项目中,DWR被用来实现在不刷新整个页面的情况下,从后台获取list数据并动态地在表格中展示,同时还有二级联动功能的实现,增加了用户操作的便捷性。下面我们将深入探讨这个项目的各个关键技术点。 首先,DWR...

    dwr对象处理dwr对象处理dwr对象处理

    - `dwr.xml` 文件是DWR的核心配置文件,用于定义哪些Java对象和方法可以被JavaScript访问。 - `&lt;allow&gt;` 标签定义了可以暴露给JavaScript的权限范围。 - `&lt;create&gt;` 标签创建一个JavaScript对象,该对象可以调用...

    DWR框架怎么返回对象.pdf

    总之,DWR框架提供了一种高效、灵活的方式,使得Web应用可以像操作本地对象一样调用服务器端的Java方法,从而提升Web应用的交互性和实时性。通过合理配置和使用,开发者可以构建出强大的富客户端应用。

    dwr返回对象.doc

    下面将详细解释DWR返回对象的处理,包括如何获取和处理不同类型的数据,如list、Map、Set以及JavaBean。 1. **无返回值和参数的Java方法** 在`dwr.xml`配置文件中,我们定义一个名为`testClass`的JavaScript接口,...

    dwr20.dtd约束文件

    dwr20.dtd约束文件。 &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd" &gt;

    一个DWR例子,直接导入eclipse可运行

    DWR的核心功能在于创建一种透明的远程调用机制,使得JavaScript可以像操作本地对象一样调用服务器上的Java方法。这极大地简化了AJAX应用的开发,因为开发者无需关心底层的XMLHttpRequest交互细节。下面将详细介绍DWR...

    关于使用DWR返回对象List的方法

    这篇博客文章“关于使用DWR返回对象List的方法”主要探讨了如何通过DWR框架在Java后端处理数据并以List对象的形式返回给前端JavaScript。 在Web开发中,通常我们需要从服务器获取数据并在客户端展示,DWR通过AJAX...

Global site tag (gtag.js) - Google Analytics