You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Paul Crabtree <pa...@gmail.com> on 2005/05/17 13:39:09 UTC
Problem posting CFORMs to page anchors.
Hi all,
I have a need to post my cocoon form to a specific section of the page while
the form processing is happening to keep the user looking at the form near
the bottom of the page and therefore letting them see the validation
messages.
My problem is i can't seem to specifiy the anchor in the action attribute of
the form-template, it is striping it out and eating the character to its
right...
<ft:form-template action="page2.html#bottom" method="POST" id="step1">
..
</ft:form-template>
Produces
<form action="page2.htmlottom" method="POST" id="step1">
...
</form>
I'm a bit stuck as i need this functionality and would have assumed it was
easy. Does anyone have any ideas, tricks or suggestions as to why this is
happening and how i can get around it? They would all be much apreciated.
ps. im using Cocoon 2.1.7 on jboss 3.2.5 on java 1.4.2.
Regards, Paul
[Possible Fix] Problem posting CFORMs to page anchors.
Posted by Paul Crabtree <pa...@gmail.com>.
After delving into the Cocoon source i've tracked the problem down to
org.apache.cocoon.forms.transformation.FormsPipelineConfig in the
translateText method.
The problem is that this method looks for # as the start of a jxpath
expression but doesnt let it through if a '{' character doesnt follow, it
just ignores both the # and the following character therefore "eating" both
of these in the output.
I have made a change to the class to allow #s either as characters or
expressions as i needed this functionality straight away to allow posting
cocoon forms to anchors in pages, is this something other people would find
useful? If so how can i get this into the cocoon distribution?
Regards, Paul.
Ps, here is the small change (highlighted in bold) that i think sorts it
out. I'd apreciate someone giving it a look over as im a part time javaer.
// FormsPipelineConfig.translateText(String original)
220 while ((chr = in.read()) != -1) {
221 char c = (char) chr;
222 if (c == '#') {
223 chr = in.read();
224 if (chr != -1) {
225 c = (char) chr;
226 if (c == '{') {
227 expression = new StringBuffer();
228 boolean more = true;
229 while ( more ) {
230 more = false;
231 if ((chr = in.read()) != -1) {
232 c = (char)chr;
233 if (c != '}') {
234 expression.append(c);
235 more = true;
236 } else {
237 translated.append(evaluateExpression(expression.toString()).toString());
238 }
239 } else {
240 translated.append('#').append('{').append(expression);
241 }
242 }
243 } else {
translated.append('#').append(c);
}
244 } else {
245 translated.append((char) chr);
246 }
247 } else {
248 translated.append(c);
250 }
251 }
On 5/17/05, Paul Crabtree <pa...@gmail.com> wrote:
>
> Hi all,
>
> I have a need to post my cocoon form to a specific section of the page
> while the form processing is happening to keep the user looking at the form
> near the bottom of the page and therefore letting them see the validation
> messages.
>
> My problem is i can't seem to specifiy the anchor in the action attribute
> of the form-template, it is striping it out and eating the character to its
> right...
>
> <ft:form-template action="page2.html#bottom" method="POST" id="step1">
> ..
> </ft:form-template>
>
> Produces
>
> <form action="page2.htmlottom" method="POST" id="step1">
> ...
> </form>
>
> I'm a bit stuck as i need this functionality and would have assumed it was
> easy. Does anyone have any ideas, tricks or suggestions as to why this is
> happening and how i can get around it? They would all be much apreciated.
>
> ps. im using Cocoon 2.1.7 on jboss 3.2.5 on java 1.4.2.
>
> Regards, Paul
>
>
>
[Possible Fix] Problem posting CFORMs to page anchors.
Posted by Paul Crabtree <pa...@gmail.com>.
After delving into the Cocoon source i've tracked the problem down to
org.apache.cocoon.forms.transformation.FormsPipelineConfig in the
translateText method.
The problem is that this method looks for # as the start of a jxpath
expression but doesnt let it through if a '{' character doesnt follow, it
just ignores both the # and the following character therefore "eating" both
of these in the output.
I have made a change to the class to allow #s either as characters or
expressions as i needed this functionality straight away to allow posting
cocoon forms to anchors in pages, is this something other people would find
useful? If so how can i get this into the cocoon distribution?
Regards, Paul.
Ps, here is the small change (highlighted in bold) that i think sorts it
out. I'd apreciate someone giving it a look over as im a part time javaer.
// FormsPipelineConfig.translateText(String original)
220 while ((chr = in.read()) != -1) {
221 char c = (char) chr;
222 if (c == '#') {
223 chr = in.read();
224 if (chr != -1) {
225 c = (char) chr;
226 if (c == '{') {
227 expression = new StringBuffer();
228 boolean more = true;
229 while ( more ) {
230 more = false;
231 if ((chr = in.read()) != -1) {
232 c = (char)chr;
233 if (c != '}') {
234 expression.append(c);
235 more = true;
236 } else {
237 translated.append(evaluateExpression(expression.toString()).toString());
238 }
239 } else {
240 translated.append('#').append('{').append(expression);
241 }
242 }
243 } else {
translated.append('#').append(c);
}
244 } else {
245 translated.append((char) chr);
246 }
247 } else {
248 translated.append(c);
250 }
251 }
On 5/17/05, Paul Crabtree <pa...@gmail.com> wrote:
>
> Hi all,
>
> I have a need to post my cocoon form to a specific section of the page
> while the form processing is happening to keep the user looking at the form
> near the bottom of the page and therefore letting them see the validation
> messages.
>
> My problem is i can't seem to specifiy the anchor in the action attribute
> of the form-template, it is striping it out and eating the character to its
> right...
>
> <ft:form-template action="page2.html#bottom" method="POST" id="step1">
> ..
> </ft:form-template>
>
> Produces
>
> <form action="page2.htmlottom" method="POST" id="step1">
> ...
> </form>
>
> I'm a bit stuck as i need this functionality and would have assumed it was
> easy. Does anyone have any ideas, tricks or suggestions as to why this is
> happening and how i can get around it? They would all be much apreciated.
>
> ps. im using Cocoon 2.1.7 on jboss 3.2.5 on java 1.4.2.
>
> Regards, Paul
>
>
>