从主模板(JSF& Primefaces)更新ui:定义的表单内容 [英] Updating ui:defined form content from Master template (JSF & Primefaces)

查看:81
本文介绍了从主模板(JSF& Primefaces)更新ui:定义的表单内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的网络应用程序遇到了一些麻烦,本质上,我一直收到警告消息:

I am having a little trouble with my web-app, essentially I keep getting an warning message:

信息:在视图中找不到标识为"formName"的组件.

INFO: Cannot find component with identifier "formName" in view.

我知道为什么会这样,但是我只需要确定它们是否是一种解决方案/更好的解决方案.

I know why this is happening, but I just need to determine if their is a fix/better solution.

基本上,我有一个主模板文件,其中包含许多<p:dialog>组件,这些组件具有各种CRUD功能.当用户与这些组件进行交互时,我将使用内置的primefaces'update'函数来更新<ui:defined>页面中的各种表单/组件.但是,由于JSF Web应用程序的布局(即Master模板和ui:defined网页)以及我已经在Master模板文件中定义了这些组件的事实,这意味着可更新的表单/组件并不一定在当前视图中并在上方抛出警告消息.

Basically I have a master template file that contains a number of <p:dialog> components, which have various CRUD capabilities. When a user interacts with these components I use the inbuilt primefaces 'update' function to ajaxically update the various forms/components in the <ui:defined> page(s). However, because of the layout the JSF web-app (i.e. Master template and ui:defined web pages) and the fact that I have defined these components in the Master template file, it means that the update-able forms/components are not necessarily in the current view and throwing the warning message above.

例如:

如果我有主模板文件:master.xhtml,其组件名为< p:dialog id="componentA" />.然后我有一个带<h:form id=page1Form/>的page1.xhtml,类似地,我有一个带<h:form id=page2Form/>的page2.xhtml,它们都包含一个sessionscoped支持bean提供的信息,如果能确保更新这些表格,最好的方法是什么使用componentA会发生CRUD操作吗?目前,我只是使用< p:dialog id="componentA" update="page1Form, page2Form" />,但是由于视图中只有page1或page2,因此Tomcat吐出了上面的消息.因此,可以根据我所在的页面动态指定要更新的表单/组件,还是我必须在每个<ui:define>页面上都指定componentA(可能会重复很多html/代码,但并非特别易于管理),或者有没有一种方法可以更新当前视图中的所有表单/组件?还是我做的正确,我应该在web.xml中关闭开发模式以停止消息?

If I had my Master Template file: master.xhtml with a component called <p:dialog id="componentA" />. And then I had page1.xhtml with a <h:form id=page1Form/> and similarly I have a page2.xhtml with <h:form id=page2Form/>, which both contained information provided by a sessionscoped backing bean, what would be the best method to ensure that these forms are updated if a CRUD operation occurs using componentA? At the moment I am simply using <p:dialog id="componentA" update="page1Form, page2Form" /> but because only page1 or page2 are is in the view, Tomcat spits out the above message. So is it possible to dynamically specify the forms/components to update dependant on the page I am on, or do I have to specify componentA on every <ui:define> page (which would be lots of repeating html/code and not particularly manageable) or is there a method to update all forms/components in the current view? Or is what I am doing correct and I should just turn off development mode in my web.xml to cease the messages?

欢呼声

同盟

推荐答案

请确认一下,是否有人偶然发现了该线程.通过使用<ui:param name="paramName" value:"a value"/>值,我设法解决了上述问题.

Just to confirm, if anyone stumbles upon this thread. I managed to fix my above problem by using the <ui:param name="paramName" value:"a value"/> value.

基本上在主模板文件中指定组件,就像您要

Essentially in your master template file specify your component like you would i.e.

<p:commandButton value="Submit" action="#{someBean.doSomeStuff()}"
update="#{paramName}" />

然后在您的<ui:composition>页面中,只需声明参数名称及其值:

Then in your <ui:composition> page you simply state param name and its value:

<ui:param name="paramName" value="someForm someOtherForm"/>

找个工作!

这篇关于从主模板(JSF&amp; Primefaces)更新ui:定义的表单内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆