Java ZKSpring如何从springmvc控制器向zkzul传递变量?
我和zk一起玩了一段时间,现在发生了严重的事情。 我成功地集成了spring和zk以及路由 工作原理与我使用的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 {
@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事件上弹出上下文菜单