Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ZKSpring如何从springmvc控制器向zkzul传递变量?_Java_Spring_Spring Mvc_Jakarta Ee_Zk - Fatal编程技术网

Java ZKSpring如何从springmvc控制器向zkzul传递变量?

Java ZKSpring如何从springmvc控制器向zkzul传递变量?,java,spring,spring-mvc,jakarta-ee,zk,Java,Spring,Spring Mvc,Jakarta Ee,Zk,我和zk一起玩了一段时间,现在发生了严重的事情。 我成功地集成了spring和zk以及路由 工作原理与我使用的@controller注释相同。目前为止一切正常 现在我需要调用一个webservice,它返回一个对象列表 import org.springframework.ui.Model; //..... @RequestMapping("/accounts/personal/list") public String list(Model model){ try {

我和zk一起玩了一段时间,现在发生了严重的事情。 我成功地集成了spring和zk以及路由 工作原理与我使用的
@controller
注释相同。目前为止一切正常

现在我需要调用一个webservice,它返回一个对象列表

 import org.springframework.ui.Model;
 //.....
@RequestMapping("/accounts/personal/list")
public String list(Model model){

    try { 

        ArrayOfAccount result = port.getAccounts( null, 0, 20);
          //i thought with this i can grab the result collection.
          List<IAccount> accounts = result.getIAccount();
        model.addAttribute("accounts", accounts);
    } catch (Exception ex) {
        // TODO handle custom exceptions here
    }

    return "accountslist";
}
导入org.springframework.ui.Model;
//.....
@请求映射(“/accounts/personal/list”)
公共字符串列表(模型){
试试{
ArrayOfAccount结果=port.getAccounts(null,0,20);
//我想用这个我可以抓到结果集。
List accounts=result.getIAccount();
model.addAttribute(“accounts”,accounts);
}捕获(例外情况除外){
//TODO在此处处理自定义异常
}
返回“accountslist”;
}
真正的问题是在zul文件中获取对象

<?xml version="1.0" encoding="UTF-8"?>
<?init class="org.zkoss.zk.ui.util.Composition" arg0="/templates/mainlayout.zul"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?>
<!--<?variable-resolver class="org.zkoss.spring.DelegatingVariableResolver"?>-->
<!--<?variable-resolver class="org.zkoss.spring.init.WebflowVariableResolver"?>-->
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>

 <zk xmlns="http://www.zkoss.org/2005/zul">
 <window self="@{define(content)}" id="pAccountWin">
 <label id="lblTest" value="click me" />
    <div>
        <listbox model="${c:l('accounts')}" id="lstAccount" multiple="true">
            <listhead>
                <listheader label="Account Name" />
                <listheader label="Account Type" />
                <listheader label="Mobile Phone" />
            </listhead>
            <listitem forEach="${c:l('accounts')}" value="${each}" >
                <listcell label="${each.getAccountName()}" />
                <listcell label="${each.getAccountType()}" />
                <listcell label="${each.getMobilePhone()}" />
        </listbox>
    </div>
  </window>  
</zk>

它没有抛出错误,但我觉得我做得不对。我也知道我可以使用GenrericForwardComposer来实现 同样的,我也没有“麻烦”(我相信)。这让我很困惑,我是否在做正确的事情

问题1
在将accounts变量传递到前端时,我如何才能实现我想要做的事情

问题2: 使用ZKspring(无webflows)的最佳方式是什么?Spring Controller执行路由和ForwardComposer来处理ajax行为(即事件)?例如,当完全采用SpringMVC方式时,a是否应该编写代码来处理ajax调用

问题3: 我在这里使用列表框,但我需要在所选对象的上下文菜单中执行操作。您认为网格适合它吗


感谢阅读。

问题1答案:
${c:l('accounts')
将从i3label属性文件(通常用于ZK中的国际化)中检索带有键
accounts
的标签值。如果您想访问变量(通常是Java bean) 1.使用
指令在页面顶部声明变量解析器 2.使用EL表达式访问ZUML中的Javabean,例如${accounts}

问题2答案:我建议采用ZK MVC方式,即从ZK GenericForwardComposer扩展控制器来处理事件。您可以始终使用spring来使用spring框架处理这些控制器的生命周期

问题3答案:我不认为在这种情况下使用grid比listbox有任何优势。在任何情况下,您都可以在grid row select事件或listbox listitem select事件上弹出上下文菜单