Methods can';t从SEAM组件调用方法
我有一个SEAM 2应用程序,我有一个奇怪的情况。我正在使用EclipseIndigo进行开发,我需要创建一个带有网格的页面,其中每一行都有一个按钮,该按钮显示一个带有列表的弹出窗口,您可以通过链接选择列表中的一个项目,并且选中的值显示在该行中 所以我有这个组件:Methods can';t从SEAM组件调用方法,methods,components,seam,call,seam2,Methods,Components,Seam,Call,Seam2,我有一个SEAM 2应用程序,我有一个奇怪的情况。我正在使用EclipseIndigo进行开发,我需要创建一个带有网格的页面,其中每一行都有一个按钮,该按钮显示一个带有列表的弹出窗口,您可以通过链接选择列表中的一个项目,并且选中的值显示在该行中 所以我有这个组件: @Name("paramContHome") @Scope(ScopeType.CONVERSATION) public class ParamContHome extends KubeDAO<ParametroSistema&
@Name("paramContHome")
@Scope(ScopeType.CONVERSATION)
public class ParamContHome extends KubeDAO<ParametroSistema>{
private static final long serialVersionUID = 1L;
@In
private LoginUser loginUser;
@In(required=false,create=true)
private CuentaContHome cuentaContHome;
public void load(){
try{
setInstance(getEntityManager().find(ParametroSistema.class, prctId));
}catch (Exception e) {
clearInstance();
setInstance(new ParametroSistema());
}
}
public void selCuentaParam(ParametroSistema par) {
setSelParam(par);
cuentaContHome.getCuentasList();
}
public void setCuentaParam(CuentaContable cta) {
selParam.setValorNum(cta.getId().floatValue());
selParam.setSelObj(cta);
}
...
}
但是,当我运行应用程序并进入页面并按下按钮时,它不会调用方法SelcuentParam。我检查了这个,因为我在它里面放了断点,放了System.out.println,但没有调用它。您知道为什么会发生这种情况吗?与组件初始化有关吗
问候。嗯,我想我找到了问题所在。在我的屏幕中,我遵循一种特定的模式:首先,我有一个xhtml,其中我显示了一个数据库记录的网格,有一个按钮转到第二个xhtml,其中有一个创建新记录的表单。这个按钮开始对话,因此在具有表单(我称之为detail.xhtml)的xhtml中,它开始对话或加入现有的对话。因此,我用下一种方式修改了第一个xhtml(我称之为list.xhtml)的pages.xml:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
<action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>
<begin-conversation propagation="begin" join="true" />
</page>
我首先使用的是
,但它给了我一个从长时间运行的对话调用的异常begin(),请尝试join=true
,因此我将此添加到begin对话中,它可以工作 嗯,我想我找到了问题所在。在我的屏幕中,我遵循一种特定的模式:首先,我有一个xhtml,其中我显示了一个数据库记录的网格,有一个按钮转到第二个xhtml,其中有一个创建新记录的表单。这个按钮开始对话,因此在具有表单(我称之为detail.xhtml)的xhtml中,它开始对话或加入现有的对话。因此,我用下一种方式修改了第一个xhtml(我称之为list.xhtml)的pages.xml:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
<action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>
<begin-conversation propagation="begin" join="true" />
</page>
我首先使用的是
,但它给了我一个从长时间运行的对话调用的异常begin(),请尝试join=true
,因此我将此添加到begin对话中,它可以工作 这似乎不是一个组件初始化问题(否则您将得到NullPointerException)。当你按下按钮时会发生什么?显示任何错误页面,或者控制台中有什么东西?没有,什么也没有发生。在输出中,我得到以下信息:19:53:39911警告[Component]无法创建Seam组件,作用域未处于活动状态:entityManager(对话)
,但这是正常的,我在应用程序的其他屏幕或目录中得到了此信息,我没有问题。您是否尝试启用Seam的?那么应用服务器的日志呢?如果没有更多的信息,很难弄清楚发生了什么。请在此处发布您可以提供的任何进一步调试信息。`05:38:07386警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:38:12150警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:26245警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47306警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47421警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)`这似乎不是组件初始化问题(否则您将得到NullPointerExceptions)。当您按下按钮时会发生什么?会显示任何错误页面,或控制台中出现什么?不会,什么都不会发生。在输出中,我得到以下信息:19:53:39911 WARN[Component]无法创建Seam组件,作用域未处于活动状态:entityManager(对话)
但这是正常的,我在应用程序的其他屏幕或目录中看到了这一点,我没有问题。您是否尝试过启用Seam?应用程序服务器的日志如何?如果没有更多信息,很难弄清楚发生了什么。请在这里发布您可以提供的任何进一步调试信息。`05:38:07386警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:38:12150警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:26245警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47306警告[Component]无法创建Seam组件,作用域未激活:entityManager(对话)05:39:47421警告[component]无法创建Seam组件,作用域未激活:entityManager(对话)`
@In(required=false,create=true)
private CuentaContHome cuentaContHome;
...
public void selCuentaParam(ParametroSistema par) {
setSelParam(par);
cuentaContHome.getCuentasList();
}
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://jboss.com/products/seam/pages"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd">
<action execute="#{paramContHome.getParametrosContables()}" on-postback="false"/>
<begin-conversation propagation="begin" join="true" />
</page>