[
https://issues.apache.org/jira/browse/MYFACES-3986?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bill Lucy updated MYFACES-3986:
-------------------------------
Resolution: Fixed
Assignee: Bill Lucy
Fix Version/s: 2.2.9-SNAPSHOT
Status: Resolved (was: Patch Available)
> viewScope implicit object not resolved in a JSP page
> ----------------------------------------------------
>
> Key: MYFACES-3986
> URL: https://issues.apache.org/jira/browse/MYFACES-3986
> Project: MyFaces Core
> Issue Type: Bug
> Components: JSR-344
> Affects Versions: 2.2.8
> Reporter: Jay Sartoris
> Assignee: Bill Lucy
> Fix For: 2.2.9-SNAPSHOT
>
> Attachments: MYFACES-3986.patch
>
>
> Consider this scenario:
> A JSP file has the following contents:
> =============
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://xmlns.jcp.org/jsf/core"
> xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" >
> <body>
> <f:view>
> <h:form id="form1">
> <c:set target="${viewScope}" property="test" value="testValue2" />
> <h:outputText id="foo1" value="#{viewScope.test}" />
> </h:form>
> </f:view>
> </body>
> </html>
> ============
> When requested (with the faces mapping), it fails with this exception:
> javax.servlet.jsp.JspTagException:
> at
> org.apache.taglibs.standard.tag.common.core.SetSupport.doEndTag(SetSupport.java:195)
> at [internal classes]
> The reason for that exception is because the target attribute with a value of
> "viewScope" of the c:set tag was resolved to null.
> The Problem:
> -----------
> I think the issue here is that the wrong FacesCompositeELResolver is used
> while processing the tags. From my debugging, I see that there are two
> FacesCompositeELResolvers created in this scenario and also what is mentioned
> in the JSF 2.2 spec, section 5.6. One with JSP scope and one with Faces
> scope. The ImplicitElResolvers created in each of these scopes is different
> as detailed in the spec.
> The problem I see is that when processing the tags, the Faces scoped
> ELResolvers are created, but not used when processing the c:set tag to
> resolve the viewScope implicit map. When processing this tag, it will use
> the JSP scoped resolvers and therefore cannot resolve the viewScope and
> throws the exception mentioned above because the
> org.apache.myfaces.el.unified.resolver.implicitobject.ViewScopeImplicitObject
> is never called as it is only associated with a Faces scoped
> ImplicitObjectResolver.
> Even though this is a JSP file, shouldn't the Faces scoped resolvers be used
> when this is a JSF file?
>
> This same scenario works on Mojarra 2.2.10 with Tomcat 8.0.15, but fails when
> using MyFaces.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)