gpt4 book ai didi

java - 使用 modelDriven 拦截器时如何在 Struts 2 jqGrid 中获取 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 03:52:19 25 4
gpt4 key购买 nike

我正在 JSP 中创建一个网格,如下所示

   <sjg:grid gridModel="gridModel"  
---- other options -- >


</sjg:grid>

在我的struts.xml我给出这个 Action 配置

    <action name = "jsonAction" calss == "Action class" method = "methodName" >
<interceptor-ref name="modelDriven" />
<interceptor-ref name="basicStack" />
<result name="success" type="json" >
</result>
</action>

在我的 Action 课中

        public myClass extends ActionSupport implements ModelDriven<BeanClass>
{
//My list haveing getters and setters
public gridModel getGridModel()
{
return gridModel;
}
public void setGridModel(List gridModel)
{
this.gridModel = gridModel;
}

public String methodName()
{
//code here to get the list
}

public BeanClass getModel()
{

return new BeanClass();
}

}

我怀疑的是,当我不使用ModelDriven时我可以构建网格吗?拦截器。如果我使用它,那么我无法在 jqGrid 中绑定(bind)列表。

我用 Google 搜索了这个问题,但找不到正确的解决方案。据我所知,使用 modelDriven 时会发生问题。拦截器。该拦截器会将操作对象保持在 ValueStack 之上

即使我尝试使用 [1].top但运气不佳。

编辑:

我正在实现ModelDriven正如你所说,我缺少一些特化的界面,我想我已经做了你所说的,但仍然没有运气。不知道我错过了什么。

我只是按照你说的做了,我需要改变我的 <sjg:grid gridModel = "Here?"> 中的任何内容吗? ?

仍然无法获取jqGrid中的数据。

最佳答案

Even I tried to use the [1].top but no luck ..

top 引用堆栈顶部的对象。 [1].top 通过索引 1 引用堆栈中的 top 对象。在第一种情况下,它是插入堆栈的模型,在第二种情况下,它是一个操作 bean创建后压入堆栈。我猜第二个包含当操作返回 json 结果时提供给网格所需的属性。这些属性在 json 结果的包含参数中提供。您的操作实现了 ModelDriven 接口(interface),但特化错误。如果您的操作 bean 包含应序列化为 JSON 的属性,则模型应该是操作 bean。如果你像这样编写你的action bean,你就可以做到这一点

public MyClass extends ActionSupport implements ModelDriven
{

//My list haveing getters and setters
public String methodName()
{
//code here to get the list
}

@Override
public Object getModel()
{
return this;
}

}

关于java - 使用 modelDriven 拦截器时如何在 Struts 2 jqGrid 中获取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24124983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com