Seems like question is closed now.

Thanks.

Alex Siman wrote:
> 
> Thanx you Dave for your advice! 
> 
> I switched off the JSTL-EL (as it was recomended in Struts2 wiki), so I
> wrote another working code:
> 
>       <% request.setAttribute("jspContext", jspContext); %>
>       <s:property value="%{#attr.jspContext.getAttribute('fieldName')}"/>
> 
> 
> And another more complex variant:
> --------------------------------------
>       <% 
>               class JspContextUtils {
>                       private static final String ATTR_MAP_NAME = 
> "jspContext";
>                       
>                       private PageContext pageContext;
>                       private ServletRequest request;
>                       
>                       public JspContextUtils(JspContext jspContext) {
>                               pageContext = (PageContext) jspContext;
>                               request = pageContext.getRequest();
>                       }
>                       
>                       public void exposeTagAttributeToOgnl(String attrName) {
>                               Map<String, Object> attrMap = null;
>                               Object attrMapObj = 
> request.getAttribute(ATTR_MAP_NAME);
>                               if (attrMapObj == null || !(attrMapObj 
> instanceof Map)) {
>                                       attrMap = new HashMap<String, Object>();
>                                       request.setAttribute(ATTR_MAP_NAME, 
> attrMap);
>                               } else {
>                                       attrMap = (Map<String, Object>) 
> attrMapObj;
>                               }
>                               attrMap.put(attrName, 
> pageContext.getAttribute(attrName));
>                       }
>               }
> 
>               JspContextUtils jspContextUtils = new 
> JspContextUtils(jspContext);
>       %>
> 
>       <% jspContextUtils.exposeTagAttributeToOgnl("fieldName"); %>
>       <s:property value="%{#attr.jspContext.fieldName}"/>
> --------------------------------------
> 
> 
> P.S. What did you mean by this?:
> 
>       "The answer is easier if this .tag file contains no recursive calls."
> 
> 
> DNewfield wrote:
>> 
>> The answer is easier if this .tag file contains no recursive calls.
>> The issue is that the .tag file receives attributes through jstl-el, not 
>> ognl.  You can use the jstl-el c:set tag to promote that value into a 
>> namespace that's also accessible from ognl.
>> 
>> Alex Siman wrote:
>>> /WEB-INF/tags/formField.tag
>>> --------------------------------------------------------------
>>> <%@ attribute name="fieldName" %>
>> <c:set var="fieldNameInTag" scope="request" value="${fieldName}"/>
>> <s:property value="%{#request.fieldNameInTag}"/>
>> 
>> -Dale
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/How-to-get-value-of-tag-attribute-from-OGNL--tp25862967p25876485.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to