Tag: jsf 1.2

JSF 1.2生命周期理解:在InvokeApplication阶段执行ValueChangeListener方法

我在DataTable的facet头中使用 。 该 DataTable的所有行内容都是 。 行按照我想要的方式完美选择。 以下是我使用的代码: …… …… …… 这是ValueChangeListener的代码: public void checkAll(ValueChangeEvent event){ if(isInvokeApplicationPhase(event)){ Iterator empl = employeeList.iterator(); while(empl.hasNext()){ Employee emp = empl.next(); emp.setChecked(checkedHdr); } } } 这是我为使这段代码工作而添加的isInvokeApplicationPhase实用程序(在此链接中引用了BalusC建议的解决方案: JSF 1.2:valueChangeListener事件未返回新选择的值 ): public boolean isInvokeApplicationPhase(FacesEvent event){ if(event.getPhaseId() != PhaseId.INVOKE_APPLICATION){ event.setPhaseId(PhaseId.INVOKE_APPLICATION); event.queue(); return false; } return true; } 现在我的问题: 在ValueChangeListener方法中使用isInvokeApplicationPhase检查有什么用? 如果我评论这个检查然后它不起作用 – 为什么? 我以为我已经正确理解了JSF生命周期,但这种行为certificate我没有:( 请让我知道基于JSF生命周期阶段的解释。

JSF 1.2的startElement和writeAttribute解释

我有机会为我的项目编写一些自定义渲染器,并且运行良好。 但是我对ResponseWriter方法中的一些参数感到有些困惑。 文档没有很好地解释这一点,所以我希望其中一位常驻JSF专家可以更好地解释这一点。 特别: public abstract void startElement(java.lang.String name, javax.faces.component.UIComponent component) throws java.io.IOException Parameters: name – Name of the element to be started component – The UIComponent (if any) to which this element corresponds 第二个参数实际上做了什么? 我是否在渲染器中传递“null”或“this”似乎工作正常? 对于writeAttribute也是如此: public abstract void writeAttribute(java.lang.String name, java.lang.Object value, java.lang.String property) throws java.io.IOException Parameters: name – Attribute name to be […]

java.util.MissingResourceException:找不到基本名称消息的bundle,locale en_US

我是JSF的新手,正在尝试这段代码..这是我的faces-config.xml: messages msg messages是一个存储一些属性的文件,而message文件没有放在任何目录下,它直接放在应用程序下面。 为什么我无法访问此文件? 提前谢谢..如果您需要任何其他信息,请告诉我。

将Flash文件上载与JSF集成

我已经看到我们可以通过flash文件上传来上传多个文件。 像SWFUpload或YUI Uploader 。 是否可以将这些上传组件与JSF集成? 我想要的是一次选择多个文件。 Primefaces文件上传器具有此function,但在IE7中不起作用,因为IE7没有任何HTML5支持。 我需要创建一个包含各种字段的表单,如下拉菜单,文本输入等,还需要添加文件上传器以选择多个文件。 当点击JSF提交按钮时,表格将被validation,之后将继续。 我已经创建了一个用于上传多个文件的页面,但该页面使用多个输入文件组件来存储多个文件。 任何参考对我都非常有帮助。 我找到了另一个SO线程 ,其中发布的解决方案使用JSP。 我无法理解如何使用它来满足我的要求。 更新 我创建了以下托管bean: import com.mhis.massupload.ucm.Service; import java.util.List; import java.util.UUID; import java.util.logging.Logger; import javax.faces.context.FacesContext; import org.apache.commons.fileupload.FileItem; public class UploadBean { private Logger log = Logger.getLogger(getClass().getName()); private Service service; private String key; public UploadBean() { super(); log.info(“JYM”); init(); } private void init() { key […]

在JSF 1.2中,如何更改RenderResponsePhase的日志级别?

我在系统中得到以下消息:“ FacesMessage已被排队…… ”。 Sun的JavaServer Faces实现(1.2_07-b03-FCS)的解决方案是将其添加到web.xml: Set to true to disable the following warning message: FacesMessage(s) have been enqueued, but may not have been displayed com.ibm.ws.jsf.disableEnqueuedMessagesWarning true 但由于某种原因,该解决方案不适用于我使用Mojarra(1.2_15-b01-FCS)的实现。 该文档说我需要简单地更改RenderResponsePhase的记录器。 Faces Message(s)已被编码… 基本上,我想我要问的是我需要为RenderResponsePhase配置什么是logger类。

关于Wildfly 8 Final的JSF 1.2 – weld-core-jsf仍在引用JSF 2.2 API

我正在将一个JSF-1.2应用程序迁移到Wildfly 8 Final并且卡住了:( 首先,我已经阅读了许多相关问题的post(例如https://community.jboss.org/message/845006或迁移JSF 1.2 Seam应用程序到WildFly Beta 1 )但是建议的解决方案(不包括焊接子系统)没有不适合我。 我做了什么: 我按照这里的multi-jsffunction教程安装了JSF 1.2作为wildfly的模块(确切地说,3个模块)。 接下来是我为javax.faces.api和com.sun.jsf-impl(主插槽)添加了排除项,以及我的jboss-deployment-structure.xml的1.2插槽的相应依赖项。 由于该应用程序正在使用Tomahawk和Tomahawk Sandbox,我也在用我的耳朵部署,我也排除了主要插槽,并包括这两个模块的1.2插槽用于这些部署。 我的问题: 当我尝试调用部署的初始页面(login.xhthml)时,我得到以下错误,该错误是由插槽1.2中的模块“org.jboss.as.jsf-injection”引起的 ERROR [request] UT005023:对/backoffice/login.faces的exception处理请求:java.lang.NoSuchMethodError:javax.faces.context.FacesContext.getAttributes()Ljava / util / Map; [exec] at org.jboss.weld.jsf.ConversationAwareViewHandler.getActionURL(ConversationAwareViewHandler.java:103) [exec] at javax.faces.application.ViewHandlerWrapper.getActionURL(ViewHandlerWrapper.java:147) [exec] at com.sun.facelets.FaceletViewHandler.getActionURL(FaceletViewHandler.java:807) [exec] at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer.getActionUrl(HtmlRenderer.java:77) [exec] at org.apache.myfaces.custom.form.HtmlFormRenderer.getActionUrl(HtmlFormRenderer.java:45) [exec] at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlFormRendererBase.encodeBegin(HtmlFormRendererBase.java:102) [exec] at org.apache.myfaces.custom.form.HtmlFormRenderer.encodeBegin(HtmlFormRenderer.java:134) [exec] at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:816) [exec] at javax.faces.component.UIComponent.encodeAll(UIComponent.java:928) [exec] at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) [exec]在com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:594) […]

如何在JSF中进行重定向

我有一个网络应用程序,用户可以直接发送到某些特定页面(例如他可以查看或编辑项目的页面)。 为实现这一目标,我们提供了一个特定的url。 这些URL位于当前Web应用程序之外(即,它们可以存在于另一个Web应用程序或电子邮件中)。 url看起来像http://myserver/my-app/forward.jsf?action=XXX&param=YYY ,其中: action表示将重定向用户的页面。 您可以将此视为faces-config.xml中navigation-case中任何JSF操作from-outcome 。 actionParam是上一个操作的参数(通常是项ID) 例如,我可以拥有这些url: http://myserver/my-app/forward.jsf?action=viewItem&actionParam=1234 http://myserver/my-app/forward.jsf?action=editItem&actionParam=1234 当然,我有一个Java类(bean),它将检查一些安全性约束(即用户是否允许查看/编辑相应的项?)然后将用户重定向到正确的页面(例如edit.xhtml , view.xhtml或access-denied.xhtml )。 目前的实施 目前,我们有一个完成前进的基本方法。 当用户单击该链接时,将调用以下XHTML页面: document.getElementById(‘forwardForm:forwardBtn’).click(); 如您所见,我在Java bean中绑定了两个组件。 它们将用于存储action和actionParam请求参数的值(使用FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“actiontParam”); )。 我还提供了doForward方法,该方法将在呈现页面时立即调用,这将(再次)将用户重定向到真实页面。 方法是: public void doForward(ActionEvent evt) { FacesContext facesContext = FacesContext.getCurrentInstance(); String redirect = // define the navigation rule that must be used in order to redirect the user to the […]