[ https://issues.apache.org/jira/browse/OFBIZ-5904?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leon updated OFBIZ-5904: ------------------------ Attachment: OFBIZ-5904.patch > "Value" attribute of hidden form field is overridden by same name value in > context > ---------------------------------------------------------------------------------- > > Key: OFBIZ-5904 > URL: https://issues.apache.org/jira/browse/OFBIZ-5904 > Project: OFBiz > Issue Type: Bug > Components: framework > Affects Versions: Trunk > Reporter: Leon > Fix For: Trunk > > Attachments: OFBIZ-5904.patch > > > e.g. > {quote} > <field ...> > <hyperlink target="..." link-type="hidden-form" > > <parameter param-name="partyId" value="Company" /> > ... > </hyperlink> > </field> > {quote} > If there's a "partyId" key in context, then, the value set here will be > overridden. > This problem is caused by commit > [r1392766|https://fisheye6.atlassian.com/changelog/ofbiz?cs=1392766] : > {quote} > for (Map.Entry<String, String> parameter: parameterMap.entrySet()) { > if (parameter.getValue() != null) { > + String key = parameter.getKey(); > + > writer.append("<input name=\""); > - writer.append(parameter.getKey()); > + writer.append(key); > writer.append("\" value=\""); > - writer.append(parameter.getValue()); > + > + String valueFromContext = context.containsKey(key) ? > + context.get(key).toString() : parameter.getValue(); > + writer.append(valueFromContext); > writer.append("\" type=\"hidden\"/>"); > } > } > {quote} > In this commit, it got context value in preceding of "value" attribute. It's > not reasonable. > This defect mentioned above was caused by trying fix the problem introduced > by commit [1298454|https://fisheye6.atlassian.com/changelog/ofbiz?cs=1298454]: > {quote} > - return this.value.expandString(context); > + try { > + return > URLEncoder.encode(this.value.expandString(context), > Charset.forName("UTF-8").displayName()); > + } catch (UnsupportedEncodingException e) { > + Debug.logError(e, module); > + return this.value.expandString(context); > + } > {quote} > In this commit, it called URLEncoder.encode to encode parameter value no > matter where the value would be used. Actually, if use this value as the > "value" attribute of html form field, it should be encoded by HtmlEncoder not > URLEncoder. -- This message was sent by Atlassian JIRA (v6.3.4#6332)