<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/">
  <title>EL question and FacesMessage question</title>
  <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_thread?p_l_id=39899&amp;threadId=38907" />
  <subtitle>EL question and FacesMessage question</subtitle>
  <entry>
    <title>RE: EL question and FacesMessage question</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=42863" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=42863</id>
    <updated>2010-04-19T11:11:55Z</updated>
    <published>2010-04-19T11:11:55Z</published>
    <summary type="html">&lt;div class='quote-title'&gt;Neil Griffin:&lt;/div&gt;&lt;div class='quote'&gt;&lt;div class='quote-content'&gt;The login/posting problem should be fixed now.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Yes, everything is ok now.</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-04-19T11:11:55Z</dc:date>
  </entry>
  <entry>
    <title>RE: EL question and FacesMessage question</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=39015" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=39015</id>
    <updated>2010-03-17T09:47:21Z</updated>
    <published>2010-01-10T11:44:29Z</published>
    <summary type="html">&lt;div class='quote-title'&gt;Neil Griffin:&lt;/div&gt;&lt;div class='quote'&gt;&lt;div class='quote-content'&gt;You might want to try the jsf-facelets.jar that is found in the sample-jsf-1.2-sun-facelets-portlet that you can download from here:&lt;br /&gt;http://sourceforge.net/projects/lportal/files/Liferay%20Plugins/5.2.0/sample-jsf-1.2-sun-facelets-portlet-5.2.0.1.war/download&lt;br /&gt;&lt;br /&gt;It contains some patches that don&amp;#039;t appear in the standard one available from Sun.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Thanks a lot, Neil.&lt;br /&gt;With new jar FacesMessage incrementing stopped.&lt;br /&gt;&lt;br /&gt;But I still see debug-messages in Tomcat log about PortletFaces EL-resolvers errors.&lt;br /&gt;Though all variables are resolving correctly and this is not a problem.&lt;br /&gt;&lt;br /&gt;So I think this topic should be closed.&lt;br /&gt;&lt;br /&gt;------------------------&lt;br /&gt;&lt;span style='color: #FF0000;'&gt;Important!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After migration from edorasframework.org to portletfaces.org I can&amp;#039;t post any new messages or topics in this forum.&lt;br /&gt;&lt;br /&gt;All I can do is to edit my older messages.&lt;br /&gt;&lt;br /&gt;Portla admins, help me!&lt;br /&gt;I think that after migration I lost permission to post to forums on portletfaces.org.&lt;br /&gt;Can you restore it please!</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2010-01-10T11:44:29Z</dc:date>
  </entry>
  <entry>
    <title>EL question and FacesMessage question</title>
    <link rel="alternate" href="http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=38906" />
    <author>
      <name>Artur Vilsov</name>
    </author>
    <id>http://www.portletfaces.org/c/message_boards/find_message?p_l_id=39899&amp;messageId=38906</id>
    <updated>2010-01-24T14:15:49Z</updated>
    <published>2009-12-24T10:18:23Z</published>
    <summary type="html">Hi!&lt;br /&gt;&lt;br /&gt;I&amp;#039;m a starter with PortleFaces.&lt;br /&gt;I have 2 questions. Because code is common to both questions I&amp;#039;ve posted it in one thread.&lt;br /&gt;I created my first JSF portlet for Liferay with PortletFaces.&lt;br /&gt;&lt;br /&gt;I&amp;#039;ve created request scoped managed bean&lt;br /&gt;here&amp;#039;s my faces-config.xml fragment&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;application&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;view-handler&amp;gt;com.sun.facelets.FaceletPortletViewHandler&amp;lt;/view-handler&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/application&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;lifecycle&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;phase-listener&amp;gt;org.edorasframework.extfaces.lifecycle.DebugPhaseListener&amp;lt;/phase-listener&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/lifecycle&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;managed-bean&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;managed-bean-name&amp;gt;SearchBean&amp;lt;/managed-bean-name&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;managed-bean-class&amp;gt;dumbuzz.SearchBean&amp;lt;/managed-bean-class&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;11&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;managed-bean-scope&amp;gt;request&amp;lt;/managed-bean-scope&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;12&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/managed-bean&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;Here&amp;#039;s my bean&amp;#039;s code:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;public class SearchBean {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; private String searchString;;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; private final PortletFacesContext portletFacesContext = PortletFacesContext.getInstance();&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp; &amp;nbsp; public SearchBean {&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; searchString = &amp;#034;test string&amp;#034;;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; portletFacesContext.addGlobalInfoMessage(&amp;#034;test message&amp;#034;);&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class='code-lines'&gt;11&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;12&lt;/span&gt;&amp;nbsp; &amp;nbsp;public String getSearchString() {&lt;br /&gt;&lt;span class='code-lines'&gt;13&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;return this.searchString;&lt;br /&gt;&lt;span class='code-lines'&gt;14&lt;/span&gt;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&lt;span class='code-lines'&gt;15&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Also I created faceletbased-portlet view with view.xhtml. &lt;br /&gt;Related fragment of view::&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;2&lt;/span&gt;&amp;lt;ui:composition xmlns:f=&amp;#034;http://java.sun.com/jsf/core&amp;#034; xmlns:h=&amp;#034;http://java.sun.com/jsf/html&amp;#034; xmlns:ui=&amp;#034;http://java.sun.com/jsf/facelets&amp;#034;&amp;gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class='code-lines'&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;h:outputText value=&amp;#034;#{liferay.user.screenName}&amp;#034;/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;h:outputText value=&amp;#034;#{SearchBean.searchString}&amp;#034;/&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;5&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;lt;h:messages id=&amp;#034;messages&amp;#034; globalOnly=&amp;#034;true&amp;#034;/&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;6&lt;/span&gt;&amp;lt;/ui:composition&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I deployed portlet to Liferay, create new page &amp;#034;JSF&amp;#034; and put my portlet on this portal page - /web/guets/jsf.&lt;br /&gt;It became a single portlet on this page.&lt;br /&gt;&lt;br /&gt;1) So here&amp;#039;s my first problem:&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;&amp;nbsp;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;2&lt;/span&gt;When I try to render this portlet in Liferay I see this debug messages in my Tomcat log:&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;3&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.extfaces.el.ExtELResolver.resolveVariable&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;4&lt;/span&gt;DEBUG: Unable to resolve variable [liferay] value=null&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;5&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.portletfaces.el.PortletELResolver.resolveVariable&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;6&lt;/span&gt;DEBUG: Unable to resolve variable [liferay] value=null&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;7&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.extfaces.lifecycle.DebugPhaseListener.beforePhase&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;8&lt;/span&gt;DEBUG: Before phase: RENDER_RESPONSE 6&lt;br /&gt;&lt;span class='code-lines'&gt;&amp;nbsp;9&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.extfaces.el.ExtELResolver.resolveVariable&lt;br /&gt;&lt;span class='code-lines'&gt;10&lt;/span&gt;DEBUG: Unable to resolve variable [SearchBean] value=null&lt;br /&gt;&lt;span class='code-lines'&gt;11&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.portletfaces.el.PortletELResolver.resolveVariable&lt;br /&gt;&lt;span class='code-lines'&gt;12&lt;/span&gt;DEBUG: Unable to resolve variable [SearchBean] value=null&lt;br /&gt;&lt;span class='code-lines'&gt;13&lt;/span&gt;24.12.2009 12:27:24 org.edorasframework.extfaces.lifecycle.DebugPhaseListener.afterPhase&lt;br /&gt;&lt;span class='code-lines'&gt;14&lt;/span&gt;DEBUG: After phase: RENDER_RESPONSE 6&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Though I see values of my outputText fields rendered correctly. I see correct searchString value - &amp;#034;test string&amp;#034; and correct liferay-user screenName.&lt;br /&gt;That means, that variables resolved correctly, but why these messages appear?&lt;br /&gt;&lt;br /&gt; my web.xml fragement related to el&lt;br /&gt;&lt;div class='code'&gt;&lt;span class='code-lines'&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span class='code-lines'&gt;2&lt;/span&gt;&amp;lt;context-param&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;param-name&amp;gt;com.sun.faces.expressionFactory&amp;lt;/param-name&amp;gt;&lt;br /&gt;&lt;span class='code-lines'&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;lt;param-value&amp;gt;org.jboss.el.ExpressionFactoryImpl&amp;lt;/param-value&amp;gt;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;span class='code-lines'&gt;5&lt;/span&gt;&amp;lt;/context-param&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;2) My second problem:&lt;br /&gt;In my SearchBean I simply add FacesMessage with severity INFO in constructor as you see higher in SearchBean constructor code:&lt;br /&gt;&lt;br /&gt;When I start new browser session and surf to /web/guest/jsf portal page I see my info message. It&amp;#039;s ok.&lt;br /&gt;But when I refresh my browser or simply go away from portlet page with this portlet and return back to this page I see my message incrementing&lt;br /&gt;(for example, after 3 refreshes of a page I see 3 messages &amp;#034;test message&amp;#034;).&lt;br /&gt;In debugger I see, that FacesMessages don&amp;#039;t erase from FacesContext and each time my bean constructor is executed new message is adding to FacesContext messages list.&lt;br /&gt;&lt;br /&gt;Why? I thought, that FacesContext messages live in request, but why they don&amp;#039;t erase between requests</summary>
    <dc:creator>Artur Vilsov</dc:creator>
    <dc:date>2009-12-24T10:18:23Z</dc:date>
  </entry>
</feed>

