Re: Accessing action properties from JSPs
2015-10-03 17:50 GMT+02:00 Christopher Schultz: > Is this the latest wisdom for accessing action properties from JSPs > using EL? > > https://struts.apache.org/docs/access-to-valuestack-from-jsps.html > > So if my action has a "public String getItems)" method, I'd like to do > something as close as possible to this: > > > > > It looks like I can do this very quickly: > > <%@ taglib uri="http://java.sun.com/jsp/jstl/core; prefix="c" %> > <%@ taglib prefix="s" uri="/struts-tags" %> > > > ... > > > Is there something I can do to bind "action" to the actual action > instance? > > Or I can use the Struts 2 "iterate" tag: > > <%@ taglib prefix="s" uri="/struts-tags" %> > > > > I realize that this is a simple example, but is there a recommended > technique, here? EL gives me the ability to do things like print > values with somewhat less code: "${fn:escapeXml(foo)}" versus > > > In general, EL seems to be more universally understood, while the s2 > tags are a bit more specialized. > > Any suggestions are appreciated. JSTL/EL are supported out-of-the-box https://struts.apache.org/docs/can-we-use-jstl-with-the-framework.html > (After writing all of the above and experimenting, I've found that I > can reference ${items} in my JSP without doing anything with the > Struts2 tags: no required. How is that working? Does S2 export > all my beans from the action (and other places?) to the request > attributes?). The magic happens in StrutsRequestWrapper (Struts wraps each request with dedicated class). The wrapper first tries to fetch the attribute from the original request, if not found, it will use ValueStack to find the value. https://github.com/apache/struts/blob/master/core/src/main/java/org/apache/struts2/dispatcher/StrutsRequestWrapper.java#L72-L104 Regards -- Ćukasz + 48 606 323 122 http://www.lenart.org.pl/ - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Accessing action properties from JSPs
-BEGIN PGP SIGNED MESSAGE- Hash: SHA256 Lukasz, On 10/4/15 3:49 AM, Lukasz Lenart wrote: > 2015-10-03 17:50 GMT+02:00 Christopher Schultz >: >> Is this the latest wisdom for accessing action properties from >> JSPs using EL? >> >> https://struts.apache.org/docs/access-to-valuestack-from-jsps.html >> >> >> So if my action has a "public String getItems)" method, I'd like to do >> something as close as possible to this: >> >> >> >> It looks like I can do this very quickly: >> >> <%@ taglib uri="http://java.sun.com/jsp/jstl/core; prefix="c" %> >> <%@ taglib prefix="s" uri="/struts-tags" %> > value="items" /> ... >> >> >> Is there something I can do to bind "action" to the actual >> action instance? >> >> Or I can use the Struts 2 "iterate" tag: >> >> <%@ taglib prefix="s" uri="/struts-tags" %> > var="item" value="items"> >> >> I realize that this is a simple example, but is there a >> recommended technique, here? EL gives me the ability to do things >> like print values with somewhat less code: "${fn:escapeXml(foo)}" >> versus >> >> In general, EL seems to be more universally understood, while the >> s2 tags are a bit more specialized. >> >> Any suggestions are appreciated. > > JSTL/EL are supported out-of-the-box > > https://struts.apache.org/docs/can-we-use-jstl-with-the-framework.html > > >> (After writing all of the above and experimenting, I've found >> that I can reference ${items} in my JSP without doing anything >> with the Struts2 tags: no required. How is that working? >> Does S2 export all my beans from the action (and other places?) >> to the request attributes?). > > The magic happens in StrutsRequestWrapper (Struts wraps each > request with dedicated class). The wrapper first tries to fetch the > attribute from the original request, if not found, it will use > ValueStack to find the value. > > https://github.com/apache/struts/blob/master/core/src/main/java/org/ap ache/struts2/dispatcher/StrutsRequestWrapper.java#L72-L104 Thanks > for the explanation. I'm very happy that this works... the reference I provided at the top of my post suggests that working with non-Struts2-provided tags could be difficult, but it hasn't been difficult at all. Thanks, - -chris -BEGIN PGP SIGNATURE- Comment: GPGTools - http://gpgtools.org iQIcBAEBCAAGBQJWEW3YAAoJEBzwKT+lPKRYFSAQALqOJtcI6DxVdICqn4QVZB28 gtq51KVfs9EjaEBiuX4VqHiXOwDllegE2ruf18fvwZaD35lAeW22SRDcy0EquhAJ qcWwdl3qxT9ge/sTgN3LaLpCJsJRgL+/IoSJ3MPH7/VhEPsM2roK/G2fcs5d9SQS zGtGB09HEWuSL8Vm8KfIg2MdnejCDuWG0nrQcf6765C5sMTUTPYuNo+GgpBbjuad zoyV6Lx7GhkQsrIUK4RDcMbKy7vd3In+2BmwDWR6hbMD2c5Nlbp7jJbpGaz760wS itVi6TLslzASL3nBcmfOKv4NoEbOl6eT4/rOYbc8+9d6umMDTMa0OnDRnBl+FHVT LHT/dwTlKThEGTKry74giR9xVV7kwnmk0Q5e3LmUns3gwYTMYOKHsOclVO6Bui6S YyLjh7yfKi5vK/XNiaMNABkJOV/bLr46GYt9aA1X/tStV1EFbj3GQrZOHNPO+CPz fqDctZkasuTUERhcp5lHRkekJhzLAjZtKPxacLWG4TQsdaYLTpHOSrvEGa5FEN2j bBMGuDz7EVqOvGrXz2FdkP9e1oSCerQ1SBEWH9sr4yCwfIxkdyRr+zsz1pOlhD8o lpSnUaViD7XJlZ8jKmaxMrk5xXRWzvvEujQlzIwAv2yNQm4XoRTrMa5kLl1qGaHH fgcO2slGew8p5aSDibPd =Bi6o -END PGP SIGNATURE- - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: Accessing action properties from JSPs
> To: user@struts.apache.org > From: ch...@christopherschultz.net > Subject: Accessing action properties from JSPs > Date: Sat, 3 Oct 2015 11:50:31 -0400 > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > All, > > Is this the latest wisdom for accessing action properties from JSPs > using EL? > > https://struts.apache.org/docs/access-to-valuestack-from-jsps.html > > So if my action has a "public String getItems)" method, I'd like to do > something as close as possible to this: > > > > > It looks like I can do this very quickly: > > <%@ taglib uri="http://java.sun.com/jsp/jstl/core; prefix="c" %> > <%@ taglib prefix="s" uri="/struts-tags" %> > > > ... > > > Is there something I can do to bind "action" to the actual action > instance? MG>the jsp is 'bound' inside struts-config.xml to parent https://struts.apache.org/docs/action-configuration.html MG>if on the other hand you want to use a different method to execute then you can use DMI https://cwiki.apache.org/confluence/display/WW/Action+Configuration#ActionConfiguration-DynamicMethodInvocation > > Or I can use the Struts 2 "iterate" tag: > > <%@ taglib prefix="s" uri="/struts-tags" %> > > > > I realize that this is a simple example, but is there a recommended > technique, here? EL gives me the ability to do things like print > values with somewhat less code: "${fn:escapeXml(foo)}" versus > > > In general, EL seems to be more universally understood, while the s2 > tags are a bit more specialized. MG>s2 tag resolution provides access to struts value stack via OGNL expression(s) > > Any suggestions are appreciated. > > (After writing all of the above and experimenting, I've found that I > can reference ${items} in my JSP without doing anything with the > Struts2 tags: no required. How is that working? MG>in that case struts resolves this as a property placed on ValueStack https://struts.apache.org/docs/tag-syntax.html Does S2 export > all my beans from the action (and other places?) to the request > attributes?). MG>if specified by scope attrib e.g. https://struts.apache.org/docs/set.html > > Thanks, > - -chris MG>does that answer your understanding of struts-tags? > -BEGIN PGP SIGNATURE- > Comment: GPGTools - http://gpgtools.org > > iQIcBAEBCAAGBQJWD/lHAAoJEBzwKT+lPKRYAjkQAMfH92JS4kudGX8KJg1FH2zx > FC0Uvz4GZWtDDZhBy5EPZOuoLZhZevheejQq5dT9uRlWJaSBB39OrT2Lcdv+jNdL > vSQoP8bSQiHMD76SWe5GfeFcqTH0zNDutmrEiu+YjKcKcWIysDMDVveDrnKvWTQh > ZB13yys4HaDvE6r/gTxevVExSKcEe5s8GD/HRS9xtF5yjbKbA15i/LXa4XsnQvi+ > guacbXPOewvs9CuRzV1JCR1y4YxJfjb+FJXnO3WtN3V5+kPHj/gE9ne/QcJHsQ2h > BOLjNve62kt2KRuiDA86c2cESD9Zv763udDfZ1LKI4q8xq4YaFl3uDFnwgB4zgxx > aIs2ftNnfMdhNXYlWSOFQL1HVA0iY78zsLdw5Xzu7Z9Jhioo20pxnt2PsiFdwa4z > jkMQAblJcmNCxHkVk1soayzv936GUVqvCIZbjqSQs/oPwZCpJF/fFmsmTTN/G4+R > iWXo0G9M/Zq9HpcmdXVlpjiGxW7EjTt6bYiqoKi0psvV3Rmy7UPVQUHh8Z9hKGz3 > j5Wvl0m0Zhaf7dWMFpl5FnUICtOi1WUYUT6EQa3+usjEVdvoG/aB+6qreCl4G3Lo > 1EU8lmT0IRORw6MaxZft152wCLPuGqiS3J+EFDzEexoPMd7M2Z37VF1KwogPA1N/ > AJeYTvrTp5EillHT4ulu > =QyOq > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >