> I'm new to flowscript work in Cocoon, but I've gotten to this point from > a number of variable manipulations which are just a whole lot easier > (theoretically) with regular expressions than in XSLT. The following is > a simple variation that illustrates the problem. There are 40 or so > other pieces to the whole puzzle. > > Some of you will be familiar with the error message: > org.mozilla.javascript.EvaluatorException: "file:/D:/Program > Files/Apache Software Foundation/Tomcat > 5.5/webapps/dist/ROOT/Test/flow/searchTest.js", line 10: Cannot convert > /\s*((\S+\s*)*)/ to java.lang.Character > It was discussed at length in May 2005, but I would appreciate a simple > statement of the conclusions. I don't see anything like them in play in > the schema.js flowscript for the linotype block, which pattern is echoed > below. > > Clues? > > Walter > > === the ProcessParameters.js script ============ > function main() { > /* collect the possible parameters from the search screens*/ > var q = cocoon.request.get("q"); > /* trim extra spaces and break q into words */ > LTrim(q); > } > > // Removes leading whitespaces > function LTrim( value ) { > value = value.replace(/\s*((\S+\s*)*)/, "$1");
I believe the problem is this: cocoon.request.get("q") returns a java.lang.String, not a JavaScript String. Then you try to call the 'replace' method on it; java.lang.String does have a 'replace' method, but it takes Java char primitives as its arguments. Rhino tries to convert your RegExp into a char (or Character) to fit the method signature but cannot, hence the error message. What you need is to convert the java.lang.String into a JavaScript String before calling the replace method: value = String(value).replace(/\s*((\S+\s*)*)/, "$1"); You might also be able to use the java.util.String 'replaceAll' method which takes a regular expression as its first argument, but I don't recall off the top of my head if it supports $1 substitutions in the second argument. > return value; > } > > === extracts from the Sitemap ================= > <map:pipeline> > <map:match pattern="style/*"> > <map:generate type="jx" src="style/{1}.xml"/> > <map:serialize/> > </map:match> > </map:pipeline> > > <map:pipeline> > <map:match pattern="results"> > <map:call function="main"/> > <map:serialize type="xml"/> > </map:match> > </map:pipeline> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]