问题标签 [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.
jsf - 如何通过导航菜单 ajax-refresh 动态包含内容?(JSF SPA)
我刚刚学习 JSF 2,感谢这个网站,我在这么短的时间内学到了很多东西。
我的问题是关于如何为我的所有 JSF 2 页面实现通用布局,并且每当我从不同的面板单击链接/菜单时,只刷新页面的内容部分而不是整个页面。我正在使用 Facelets 方法,它可以满足我的要求,除了每次我单击面板中的链接(例如左侧面板中的菜单项)时,整个页面都会刷新。我正在寻找的是一种仅刷新页面内容部分的方法。为了说明这一点,下面是我的目标页面布局。
没有发布我的代码,因为我不确定 Facelets 是否可以做到这一点。除了 Facelets 之外,还有其他更适合我要求的方法吗?
jsf - 在 ui:repeat 中使用动态 ui:include 会导致 NullPointerException
我想通过使用<ui:repeat>
和<p:dialog>
with来创建动态对话窗口<ui:include>
。但是当我尝试如下时有一个例外。
main.xhtml
MainView.java
例外:
java - 使用 ui:include 在 JSF 中显示动态编辑器
我想在标签视图中显示一组编辑器。每个编辑器都有一个名为component的属性,用于存储渲染的编辑器。简单的编辑器使用 HTML 标签来呈现编辑器,而复杂的编辑器使用在其他页面中定义的编辑器。我发现我不能editor.component
与ui: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 的行。
java - ui:include JSF 标签后面的类
ui:include
标签是如何实现的?我在哪里可以找到它的实现(源代码)?
jsf - 隐藏 facelet 模板 ui:include 的组件?
如何隐藏包含在模板中的 facelets 组件?
在我的 template.xhtml 中:
我试图隐藏 ui:include menuSharepoint.xhtml。
jsf - 如何使用在一个里面?
我想<ui:include>
多次动态地包含一页。
代码:
现在,当我提交它时,它只保留最后一个 inlude。它只记住最后包含的页面的值。我想要每个 create_page 中的唯一实体对象。我怎样才能做到这一点?
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 有什么东西会破坏视图范围吗?
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
的值。但现在如果我有:RequestParameterMap
hiddenFormId
那么如果我查看 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 值?
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.
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 中
这足以产生这样的错误: