Re: trouble retrieving a request parameter with struts2 tags
That is interesting. I tried using the escapeTick=true attribute with the s:url, but got an exception: org.apache.jasper.JasperException: /pages/list.jsp(26,6) Attribute escapeTick invalid for tag url according to TLD A further look at the struts 2 tag reference: http://struts.apache.org/2.1.6/docs/url.html Doesn't indicate that the url tag has such an attribute -- I am using struts 2 version 2.1.6, was that attribute used in other versions? Since you mentioned it, I tried an example, without the escapeTick attribute and the URL now forms like this: http://localhost/MyApp/edit.action?id=69firstName=colinlastName=o%27hara Although the tick (or apostrophe) is not escaped, when I retrieve the lastName parameter to have the field pre-populated, the name is rendered correctly. But, you made a good point, are there other ways to escape special characters with attributes, or further manual coding are needed? On Sat, Jun 6, 2009 at 10:26 PM, Martin Gaintymgai...@hotmail.com wrote: yes that works for john doe but those of us with irish names like patrick o'donnell would need the tick mark escaped s:url action=edit var=editURL escapeAmp = false escapeTick=true ? Martin Gainty __ Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni. Date: Sat, 6 Jun 2009 13:13:08 -0500 Subject: Re: trouble retrieving a request parameter with struts2 tags From: dimi@gmail.com To: user@struts.apache.org With a little bit more searching I found the escapeAmp attribute of the s:url tag. That did the trick: s:url action=edit var=editURL escapeAmp = false Thanks! On Sat, Jun 6, 2009 at 10:41 AM, Dimitrios Christodoulakisdimi@gmail.com wrote: Thank you for the information. That ofnl expression actually worked. The textfield is populated with the value taken from the URL parameter. But something strange happens when I try to put more parameters on the request: s:url action=edit var=editURL s:param name=id value=%{id} / s:param name=firstName value=%{firstName} / s:param name=lastName value=%{lastName} / /s:url So the link forms like this: http://localhost/MyApp/edit.action?id=38firstName=johnlastName=doe Next, on the update page, I try to retrieve not only the id, but the first name and last name too from the URL (in order to pre-fill the textfields): s:form action=save s:textfield name=person.firstName value=%{#parameters.firstName} label=First Name/ s:textfield name=person.lastName value=%{#parameters.lastName} label=Last Name/ s:hidden name=person.id value=%{#parameters.id} label=Primary Key / s:submit/ /s:form Although ognl correctly picks up the first parameter (id), takes its value and populates the hidden field, I get 2 ognl warnings: one for the first name and one for the last name: WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;firstName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;lastName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] A look at how the URL forms confirms this: Instead of adding the parameters in URL using just a , parameters are separated by this: --Is that some sort of bug when evaluating multiple struts2 param tags with ognl, or do I have something wrong in the jsp code? The actual action ode works ok, I believe the issue is within that jsp only. Again, I appreciate any further advice on this. Regards to everyone. On Fri, Jun 5, 2009 at 9:32 PM, Dave Newtonnewton.d...@yahoo.com wrote: Dimitrios Christodoulakis wrote: s:hidden name=person.id value=#attr.id label=Primary Key / I told you #attr.id on javaranch; I meant #parameters. This information is readily
Re: trouble retrieving a request parameter with struts2 tags
Dimitrios Christodoulakis wrote: A further look at the struts 2 tag reference: http://struts.apache.org/2.1.6/docs/url.html Doesn't indicate that the url tag has such an attribute -- I am using struts 2 version 2.1.6, was that attribute used in other versions? No. I assumed an attempt at humor, but was just confusing instead. But, you made a good point, are there other ways to escape special characters with attributes, or further manual coding are needed? AFAIK s:url and s:property will encode things in an HTML-reasonable way by default. s:property adds the escapeJavaScript property for use in JS expressions. Dave - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: trouble retrieving a request parameter with struts2 tags
Thank you for the information. That ofnl expression actually worked. The textfield is populated with the value taken from the URL parameter. But something strange happens when I try to put more parameters on the request: s:url action=edit var=editURL s:param name=id value=%{id} / s:param name=firstName value=%{firstName} / s:param name=lastName value=%{lastName} / /s:url So the link forms like this: http://localhost/MyApp/edit.action?id=38amp;firstName=johnamp;lastName=doe Next, on the update page, I try to retrieve not only the id, but the first name and last name too from the URL (in order to pre-fill the textfields): s:form action=save s:textfield name=person.firstName value=%{#parameters.firstName} label=First Name/ s:textfield name=person.lastName value=%{#parameters.lastName} label=Last Name/ s:hidden name=person.id value=%{#parameters.id} label=Primary Key / s:submit/ /s:form Although ognl correctly picks up the first parameter (id), takes its value and populates the hidden field, I get 2 ognl warnings: one for the first name and one for the last name: WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;firstName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;lastName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] A look at how the URL forms confirms this: Instead of adding the parameters in URL using just a , parameters are separated by this: amp; --Is that some sort of bug when evaluating multiple struts2 param tags with ognl, or do I have something wrong in the jsp code? The actual action ode works ok, I believe the issue is within that jsp only. Again, I appreciate any further advice on this. Regards to everyone. On Fri, Jun 5, 2009 at 9:32 PM, Dave Newtonnewton.d...@yahoo.com wrote: Dimitrios Christodoulakis wrote: s:hidden name=person.id value=#attr.id label=Primary Key / I told you #attr.id on javaranch; I meant #parameters. This information is readily available via the S2 docs. [1, 2] IIRC the value attribute expects a literal; I'd wrap it in the OGNL escape, %{#parameters.id}, to make sure it's evaluated. Correct rendering is, of course, trivially verifiable by viewing the rendered source. The fact remains that if person.id isn't being filled correctly by your Java code something is still wrong with it. I have also tried unsuccessfully to retrieve the parameter value from the action code, but always get null. If I'm understanding what you're saying there then something is doubly wrong with either your config or your assumptions: there are several ways to retrieve URL parameters, and AFAIK they all work. Note that the result named SUCCESS will never be used if you're using the ActionSupport convenience result constants. Dave [1] OGNL http://struts.apache.org/2.x/docs/ognl.html [2] OGNL Basics http://struts.apache.org/2.x/docs/ognl-basics.html - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: trouble retrieving a request parameter with struts2 tags
With a little bit more searching I found the escapeAmp attribute of the s:url tag. That did the trick: s:url action=edit var=editURL escapeAmp = false Thanks! On Sat, Jun 6, 2009 at 10:41 AM, Dimitrios Christodoulakisdimi@gmail.com wrote: Thank you for the information. That ofnl expression actually worked. The textfield is populated with the value taken from the URL parameter. But something strange happens when I try to put more parameters on the request: s:url action=edit var=editURL s:param name=id value=%{id} / s:param name=firstName value=%{firstName} / s:param name=lastName value=%{lastName} / /s:url So the link forms like this: http://localhost/MyApp/edit.action?id=38amp;firstName=johnamp;lastName=doe Next, on the update page, I try to retrieve not only the id, but the first name and last name too from the URL (in order to pre-fill the textfields): s:form action=save s:textfield name=person.firstName value=%{#parameters.firstName} label=First Name/ s:textfield name=person.lastName value=%{#parameters.lastName} label=Last Name/ s:hidden name=person.id value=%{#parameters.id} label=Primary Key / s:submit/ /s:form Although ognl correctly picks up the first parameter (id), takes its value and populates the hidden field, I get 2 ognl warnings: one for the first name and one for the last name: WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;firstName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;lastName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] A look at how the URL forms confirms this: Instead of adding the parameters in URL using just a , parameters are separated by this: amp; --Is that some sort of bug when evaluating multiple struts2 param tags with ognl, or do I have something wrong in the jsp code? The actual action ode works ok, I believe the issue is within that jsp only. Again, I appreciate any further advice on this. Regards to everyone. On Fri, Jun 5, 2009 at 9:32 PM, Dave Newtonnewton.d...@yahoo.com wrote: Dimitrios Christodoulakis wrote: s:hidden name=person.id value=#attr.id label=Primary Key / I told you #attr.id on javaranch; I meant #parameters. This information is readily available via the S2 docs. [1, 2] IIRC the value attribute expects a literal; I'd wrap it in the OGNL escape, %{#parameters.id}, to make sure it's evaluated. Correct rendering is, of course, trivially verifiable by viewing the rendered source. The fact remains that if person.id isn't being filled correctly by your Java code something is still wrong with it. I have also tried unsuccessfully to retrieve the parameter value from the action code, but always get null. If I'm understanding what you're saying there then something is doubly wrong with either your config or your assumptions: there are several ways to retrieve URL parameters, and AFAIK they all work. Note that the result named SUCCESS will never be used if you're using the ActionSupport convenience result constants. Dave [1] OGNL http://struts.apache.org/2.x/docs/ognl.html [2] OGNL Basics http://struts.apache.org/2.x/docs/ognl-basics.html - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
RE: trouble retrieving a request parameter with struts2 tags
yes that works for john doe but those of us with irish names like patrick o'donnell would need the tick mark escaped s:url action=edit var=editURL escapeAmp = false escapeTick=true ? Martin Gainty __ Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen. Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni. Date: Sat, 6 Jun 2009 13:13:08 -0500 Subject: Re: trouble retrieving a request parameter with struts2 tags From: dimi@gmail.com To: user@struts.apache.org With a little bit more searching I found the escapeAmp attribute of the s:url tag. That did the trick: s:url action=edit var=editURL escapeAmp = false Thanks! On Sat, Jun 6, 2009 at 10:41 AM, Dimitrios Christodoulakisdimi@gmail.com wrote: Thank you for the information. That ofnl expression actually worked. The textfield is populated with the value taken from the URL parameter. But something strange happens when I try to put more parameters on the request: s:url action=edit var=editURL s:param name=id value=%{id} / s:param name=firstName value=%{firstName} / s:param name=lastName value=%{lastName} / /s:url So the link forms like this: http://localhost/MyApp/edit.action?id=38amp;firstName=johnamp;lastName=doe Next, on the update page, I try to retrieve not only the id, but the first name and last name too from the URL (in order to pre-fill the textfields): s:form action=save s:textfield name=person.firstName value=%{#parameters.firstName} label=First Name/ s:textfield name=person.lastName value=%{#parameters.lastName} label=Last Name/ s:hidden name=person.id value=%{#parameters.id} label=Primary Key / s:submit/ /s:form Although ognl correctly picks up the first parameter (id), takes its value and populates the hidden field, I get 2 ognl warnings: one for the first name and one for the last name: WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;firstName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] WARN OgnlValueStack:49 - Error setting value ognl.ExpressionSyntaxException: Malformed OGNL expression: amp;lastName [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: ; (59), after : ] A look at how the URL forms confirms this: Instead of adding the parameters in URL using just a , parameters are separated by this: amp; --Is that some sort of bug when evaluating multiple struts2 param tags with ognl, or do I have something wrong in the jsp code? The actual action ode works ok, I believe the issue is within that jsp only. Again, I appreciate any further advice on this. Regards to everyone. On Fri, Jun 5, 2009 at 9:32 PM, Dave Newtonnewton.d...@yahoo.com wrote: Dimitrios Christodoulakis wrote: s:hidden name=person.id value=#attr.id label=Primary Key / I told you #attr.id on javaranch; I meant #parameters. This information is readily available via the S2 docs. [1, 2] IIRC the value attribute expects a literal; I'd wrap it in the OGNL escape, %{#parameters.id}, to make sure it's evaluated. Correct rendering is, of course, trivially verifiable by viewing the rendered source. The fact remains that if person.id isn't being filled correctly by your Java code something is still wrong with it. I have also tried unsuccessfully to retrieve the parameter value from the action code, but always get null. If I'm understanding what you're saying there then something is doubly wrong with either your config or your assumptions: there are several ways to retrieve URL parameters, and AFAIK they all work. Note that the result named SUCCESS will never be used if you're using the ActionSupport convenience result constants. Dave [1] OGNL http://struts.apache.org/2.x/docs/ognl.html [2] OGNL Basics http://struts.apache.org/2.x/docs/ognl-basics.html
Re: trouble retrieving a request parameter with struts2 tags
Dimitrios Christodoulakis wrote: s:hidden name=person.id value=#attr.id label=Primary Key / I told you #attr.id on javaranch; I meant #parameters. This information is readily available via the S2 docs. [1, 2] IIRC the value attribute expects a literal; I'd wrap it in the OGNL escape, %{#parameters.id}, to make sure it's evaluated. Correct rendering is, of course, trivially verifiable by viewing the rendered source. The fact remains that if person.id isn't being filled correctly by your Java code something is still wrong with it. I have also tried unsuccessfully to retrieve the parameter value from the action code, but always get null. If I'm understanding what you're saying there then something is doubly wrong with either your config or your assumptions: there are several ways to retrieve URL parameters, and AFAIK they all work. Note that the result named SUCCESS will never be used if you're using the ActionSupport convenience result constants. Dave [1] OGNL http://struts.apache.org/2.x/docs/ognl.html [2] OGNL Basics http://struts.apache.org/2.x/docs/ognl-basics.html - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org