繁体   English   中英

在Java代码中使用EL的ADF

[英]ADF using EL in Java code

我有一个显示记录数的主页,当我单击create时,它应该导航到创建表单(另一个JSF),在提交新记录时,它应该导航回到主页并显示所有记录,包括新的那一个。

我已经能够使用adfc-config文件中的导航规则来实现导航。 并且我创建了Action方法(bean),该方法返回导航中使用的预期字符串。

我现在面临的挑战是单击按钮,我只能调用一个方法( action ),该方法必须返回预期的导航字符串。 或者我可以使用EL进行刷新。 因此,我可以在创建新记录后刷新页面,也可以进行导航。 不能两者都做。 actionListener用法actionListener ,因为actionListeneraction之前起作用,所以我的需求需要顺序执行。

我可以在Java代码中使用EL吗? 这样我就可以在创建记录之后并在返回字符串之前放它吗?

一些执行EL指定的方法的方法,我只需要将EL作为字符串传递?

更新:查询(显示)和插入都是API调用。

用您的话说,您正在使用“无界”任务流adfc-config构建导航业务逻辑。 这是不对的! 无限任务流的主要目的是定义站点的基本结构。 例如,在您的主页上,如果有一个“创建部门”的链接,而另一个有“添加雇员”的链接,则只有2条简单的导航规则可以链接到那些独立的页面。

为了实现您的目标,您需要有界的任务流和一些页面片段。 下图是我处理过的一个应用程序中的实际绑定任务流。 让我们以它为例。

在此处输入图片说明

绑定任务流的主要特征是同一任务流中的所有片段将共享一个公共数据控件(即所有片段将看到同一组数据)。 从上图可以看到,我的起始页是公司卡的搜索页,其中将根据用户搜索的内容显示所有记录。

在此“搜索”页面上,我还有一个“创建”按钮,允许用户创建新记录,这将导致“详细信息”页面(也是编辑当前记录的页面)。 用户在“详细信息”页面上提交事务后,将遵循viewCorporateCard导航规则将他们重定向回“搜索”页面。 由于“搜索”页面和“详细信息”页面都共享相同的数据控件(确切地说,是相同的迭代器),因此,当用户回到此处时,他们会在“搜索”页面顶部自动看到新记录。 您无需手动执行任何操作即可实现此目的。

希望这可以帮助! :)

将EL值作为字符串传递

this.setvalueToExpression("#{bindings.Orderno.inputValue}",
                              "sample");//pass string value

public void setvalueToExpression(String el, Object val) {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ELContext elContext = facesContext.getELContext();
    ExpressionFactory expressionFactory =
        facesContext.getApplication().getExpressionFactory();
    ValueExpression exp =
        expressionFactory.createValueExpression(elContext, el,
                                                Object.class);
    exp.setValue(elContext, val);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM