问题标签 [uiinclude]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
46077 浏览

jsf - 如何通过导航菜单 ajax-refresh 动态包含内容?(JSF SPA)

我刚刚学习 JSF 2,感谢这个网站,我在这么短的时间内学到了很多东西。

我的问题是关于如何为我的所有 JSF 2 页面实现通用布局,并且每当我从不同的面板单击链接/菜单时,只刷新页面的内容部分而不是整个页面。我正在使用 Facelets 方法,它可以满足我的要求,除了每次我单击面板中的链接(例如左侧面板中的菜单项)时,整个页面都会刷新。我正在寻找的是一种仅刷新页面内容部分的方法。为了说明这一点,下面是我的目标页面布局。

在此处输入图像描述 没有发布我的代码,因为我不确定 Facelets 是否可以做到这一点。除了 Facelets 之外,还有其他更适合我要求的方法吗?

0 投票
2 回答
7847 浏览

jsf - 在 ui:repeat 中使用动态 ui:include 会导致 NullPointerException

我想通过使用<ui:repeat><p:dialog>with来创建动态对话窗口<ui:include>。但是当我尝试如下时有一个例外。

main.xhtml

MainView.java

例外:

0 投票
1 回答
1020 浏览

java - 使用 ui:include 在 JSF 中显示动态编辑器

我想在标签视图中显示一组编辑器。每个编辑器都有一个名为component的属性,用于存储渲染的编辑器。简单的编辑器使用 HTML 标签来呈现编辑器,而复杂的编辑器使用在其他页面中定义的编辑器。我发现我不能editor.componentui:include一起使用,因为在构建树时该值不可用。我该如何解决这个问题?是否有任何替代 ui:include 没有此限制?

编辑 1

web.xml包含以下条目:

custom.taglib.xml位于 WEB-INF 文件夹中。

DynamicInclude 注释为@FacesComponent("ro.custom.DynamicInclude")

groups.xhtml 中,我添加了动态包含的命名空间 - xmlns:custom="http://www.custom.ro/"

编辑2

最后我设法使它工作。缺少的是处理程序类(com.corejsf.tag.DynamicIncludeHandler)的条目。我还删除了在 DynamicInclude 的 getSrc 方法中测试 src 是否为 null 的行。

0 投票
1 回答
716 浏览

java - ui:include JSF 标签后面的类

ui:include标签是如何实现的?我在哪里可以找到它的实现(源代码)?

0 投票
1 回答
4923 浏览

jsf - 隐藏 facelet 模板 ui:include 的组件?

如何隐藏包含在模板中的 facelets 组件?

在我的 template.xhtml 中:

我试图隐藏 ui:include menuSharepoint.xhtml。

0 投票
1 回答
1863 浏览

jsf - 如何使用在一个里面?

我想<ui:include>多次动态地包含一页。

代码:

现在,当我提交它时,它只保留最后一个 inlude。它只记住最后包含的页面的值。我想要每个 create_page 中的唯一实体对象。我怎样才能做到这一点?

0 投票
1 回答
2591 浏览

ajax - JSF:ui:include 和(损坏的)视图范围

我有一个 JSF 页面,其中包含一些常见元素,然后是 4 个根据各种用户操作动态加载和包含的部分。我有封装各种包含功能的 bean,结构如下所示:

在主视图页面上,每个包含都通过一系列条件渲染的 h:panelGroups 包含在 BalusC 在这些问题中的描述中:

https://stackoverflow.com/a/9897016/945403

https://stackoverflow.com/a/7113961/945403

视图范围 bean 包含一些关于用户活动的当前状态、他们当前正在查看的项目等的各种视图信息。

每个包含的视图都通过 ajax 和非 ajax 帖子执行各种任务。我的问题是某些面板中的某些操作似乎会导致视图范围被破坏,并且似乎没有押韵或理由。对于下面概述的错综复杂的工作流程,我提前道歉,但我会尽量做到清楚。

如果我在 include3.xhtml 中执行 ajax 操作,它们只会在 include 中呈现组件,我可以整天这样做,并且视图范围仍然存在。如果我执行非 ajax 帖子,刷新将更新(并可能添加以前未渲染的)include4.xhtml。然后,我可以随后在任何其他包含中执行操作。

如果我在 include1.xhtml 中执行一个 ajax 操作,它只调用它自己的支持 bean 中的方法,并且只更新它自己的组件,那么视图范围仍然存在。如果我执行调用 include3Bean 中的方法并更新包含 include2.xhtml 和 include3.xhtml 的 div 的 ajax 操作,则视图范围仍然存在,只要我继续在 include1.xhtml 中执行操作,视图范围就会保留。一旦我尝试在另一个包含中执行另一个操作,视图范围就会被破坏。

在这一点上,我对自己认为问题一定在于我正在更新不同的包含,而不是从中调用操作。但这似乎不是问题(或至少是唯一的问题),我现在将解释。

include2.xhtml 有一个 ajax 动作,当它被触发时,调用 mainViewBacking 中的一个方法并更新包含 include2.xhtml 和 include3.xhtml 的 div。如果我继续执行此操作,或在 include2.xhtml 中执行任何其他操作(包括非 ajax 操作),一切都会按预期工作并且视图范围仍然存在。但是,如果我随后在 include3.xhtml 中执行操作,则视图范围被破坏。奇怪的是我可以在 include1.xhtml 中执行操作,只要我愿意,他们将继续访问视图范围,但如果我尝试返回并在 include2.xhtml 或 include3 中执行操作。 xhtml,视图范围再次丢失。

我在这一点上有点卡住了,我什至不知道如何去找出问题所在。我假设一些关于刷新(以及删除或添加)包含的内容会导致视图范围丢失,但从之前链接的问题来看,这似乎不是问题,因为 ui 的实际 src 值:includes 不是动态生成的。而且我确实关闭了 mainview.xhtml 的部分状态保存。

这些动态显示的 ui:includes 有什么东西会破坏视图范围吗?

0 投票
1 回答
15382 浏览

jsf - 如何访问托管 bean 中的 ui:param 值

我已经看到这个问题问了很多,但是没有一个得到正确的回答,所以我决定再问一次。所以如果我有这个:如果我在A.xhtml并且我

所以B.xhtml,我可以做到这一点

当我运行时A.xhtml,我会看到awesome Id打印在屏幕上。但是,我如何访问formId支持 bean 中的值。我往里看FacesContext.getCurrentInstance().getAttributes()FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()我似乎找不到它。更进一步,所以我尝试:

在里面B.xhtml,我现在有

这个想法是我可以访问under keyformId的值。但现在如果我有:RequestParameterMaphiddenFormId

那么如果我查看 POST 请求(在 chrome 或 ff 调试模式下),我会得到这个错误

<partial-response><error><error-name>class javax.faces.component.UpdateModelException</error-name><error-message><![CDATA[/B.xhtml @9,61 value="${formId}": /index.xhtml @27,61 value="awesome Id": Illegal Syntax for Set Operation]]></error-message></error></partial-response>

那么如何访问托管 bean 中的 ui:param 值?

0 投票
0 回答
525 浏览

jsf-2 - AutoComplete throwing nullpointer when in ui:include code

I am using a PrimeFaces autoComplete box in my code. I have used this components in various places in my application with no problem. When I have it in a block of code that is dynamically included via ui:include, I get:

If I take the exact code copy and paste it into the parent right before the ui:include, it works there. So obviously the problem has something to do with it being in the ui:include. Is there a problem with ajax controls in an include? What would I need to work around this?

My environment is PF3.4RC1, JBoss7.1, Mojarra 2.1.5

Update: Here is the code I am using. I haven't bothered including the backing beans because I put breakpoints in that code and it only is touched when I use the "working" autocomplete. As an additional piece of information, I tries putting a commandbutton on the fragment and it too fails to call the actionlistener method on the backing bean.

Main (Parent) page:

Included Fragment:

Unfortunately, the above error is all that I get in the stack trace. Here are a few preceeding lines for completeness. I Typed into the autocomplete box twice in the trace and you can see by the time what was logged when I did.

UPDATE 2: My intention is to dynamically swap out a section of the screen as the user clicks buttons. As a test, I defaulted to the fragment in question (SpecSheet) when the backing bean is created. When I do that, the Autocomplete works for that fragment. When I switch to another fragment(BOM) with an autocomplete, that one doesn't work. If I switch back to SpecSheet, that autocomplete still works.

0 投票
1 回答
6771 浏览

ajax - 动态ajax导航

假设我想在我的应用程序中导航,并动态包含不同的 facelet 页面。我有一个这样的commandLink:

这就是我包含 facelet 的地方:

导航类:

我见过类似的例子,但这当然行不通。与ui:include标记处理程序一样,包含发生在我的导航侦听器被调用之前很久。包括旧的 facelet,而不是新的。到目前为止,我明白了。

现在到头疼的部分:如何基于 actionListener 动态包含 facelet?我试图将 facelet 包含在 preRender 事件中,并在 RENDER_RESPONSE 之前包含一个 phaseListener。两者都有效,但是在事件侦听器中,我不能包含包含其他 preRender 事件的 facelet,并且在 phaseListener 中,在包含的 facelet 中单击一些后,我会得到重复的 Id。但是,检查组件树告诉我,根本没有重复的组件。也许这两个想法一点都不好..

我需要一个解决方案,其中带有 的页面ui:include或包含 facelet 的 Java 类不必知道将包含的页面,也不必知道确切的路径。以前有人解决过这个问题吗?我该怎么做?


我正在使用 JSF 2.1 和 Mojarra 2.1.15


重现问题所需的只是这个 bean:

这在您的索引文件中:

这在 text.xhtml 中

这足以产生这样的错误: