JSF 和 JSP bean 通信

发布于 2024-10-10 20:31:09 字数 49 浏览 2 评论 0原文

有什么方法可以将JSF托管bean的值存储在简单bean中以便在JSP页面中访问吗?

Is there is any way through which we can store the value of JSF managed bean in simple bean to access in JSP page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩余の解释 2024-10-17 20:31:09

添加到页面、请求、会话或应用程序范围的任何 bean 都可供 JSP 使用。您只需要服务器端的一个组件,可以访问这些范围,即可为您添加它。

Any bean that you add to page, request, session, or application scope is available to a JSP. You just need a component on the server side, with access to the those scopes, to add it in for you.

涙—继续流 2024-10-17 20:31:09

如果您需要以编程方式从 JSF 托管 bean 获取值,则可以使用如下内容:

FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();

ValueExpression ve = context.getApplication().getExpressionFactory().createValueExpression(elContext, expresssion, Foo.class);
Foo foo = (Foo) ve.getValue(elContext);

其中表达式类似于 #{myBean.someValue}。

现在这个 foo 可以存储在任何其他可以存储在任何作用域中的 bean 中,或者 foo 可以直接存储在某个作用域中。

当然,上面显示的代码片段需要在 JSF 上下文中执行。如果 JSP 页面在 JSF 上下文中执行,您还可以将片段作为 scriptlet 放置在 JSP 页面上。这将是一个非常糟糕的做法,但对于一些快速破解来说,这可能是一种解决方法。

If you need the value from a JSF managed bean programmatically, you can use something like this:

FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();

ValueExpression ve = context.getApplication().getExpressionFactory().createValueExpression(elContext, expresssion, Foo.class);
Foo foo = (Foo) ve.getValue(elContext);

Where expression is something like #{myBean.someValue}.

Now this foo can be stored in any other bean that can be stored in any scope, or foo could be directly stored in some scope.

Of course the code fragment shown above needs to be executed when still in a JSF context. If the JSP page is executed within a JSF context, you could also place the fragment on the JSP page as a scriptlet. This would be a very bad practice, but for some quick hack it might be a workaround.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文