Here is the patch for the changes. Two files were modified TR.props
and TemplateLink.java.
Can you pls submit that for me?
Thanks very much,
Costas
cvs -z9 -q diff -w -u TurbineResources.properties
Index: TurbineResources.properties
===================================================================
RCS file: /home/cvspublic/jakarta-turbine/conf/TurbineResources.properties,v
retrieving revision 1.105
diff -w -u -r1.105 TurbineResources.properties
--- TurbineResources.properties 2001/04/25 05:31:03 1.105
+++ TurbineResources.properties 2001/05/09 06:48:51
@@ -308,6 +308,14 @@
action.accesscontroller=AccessController
+# Set this parameter to 'true' if you want the TemplateLink to force
+# the comma (',') as the path separator for Templates. This will
+# add an overhead to the processing of the TemplateLink but will
+# ensure that all links will be created using a comma instead of a
+# slash. Leave it to false if you are certain that you always use the
+# ',' character in your templates.
+templatelink.force.comma=false
+
# -------------------------------------------------------------------
#
# J N D I C O N T E X T S
cvs -z9 -q diff -w -u TemplateLink.java
Index: TemplateLink.java
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine/src/java/org/apache/turbine/util/template/Te
mplateLink.java,v
retrieving revision 1.7
diff -w -u -r1.7 TemplateLink.java
--- TemplateLink.java 2001/03/06 06:14:45 1.7
+++ TemplateLink.java 2001/05/09 06:47:36
@@ -84,6 +84,7 @@
*
* @author <a href="[EMAIL PROTECTED]">Dave Bryson</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Jon S. Stevens</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Costas Stergiou</a>
* @version $Id: TemplateLink.java,v 1.7 2001/03/06 06:14:45 chrise Exp $
*/
public class TemplateLink
@@ -96,6 +97,26 @@
private String template = null;
/**
+ * reflects the value of the templatelink.force.comma property. If set
+ * the setPage method will check to ensure that the ',' is used as a
+ * separator. If not, it will replace all slashes (except the first
one)
+ * with a comma.
+ */
+ private static boolean forceComma = false;
+
+ static{
+ try
+ {
+ forceComma =
TurbineResources.getBoolean("templatelink.force.comma",false);
+ }
+ catch(Exception ex)
+ {
+ //ignore: the TurbineResources servive has not yet been
initialized.
+ }
+ }
+
+
+ /**
* Default constructor
* <p>
* The init method must be called before use.
@@ -127,6 +148,7 @@
// or null is passed in we'll throw an appropriate runtime
// exception.
super.init((RunData)data);
+
}
/**
@@ -156,7 +178,12 @@
*/
public DynamicURI setPage(String t)
{
+ //see if we need to replace slashes with commas. Exclude the first
slash
+ if ( forceComma )
+ template = t.replace('/', ',');
+ else
template = t;
+
return addPathInfo(TEMPLATE_KEY,t);
}
@@ -201,5 +228,13 @@
public String getURI()
{
return super.toString();
+ }
+
+ /**
+ * Sets whether the TemplateLink object will attempt to replace '/'
with
+ * ',' for the path info in the generated links.
+ */
+ public static void setForceComma(boolean newValue){
+ forceComma = newValue;
}
}
----- Original Message -----
From: "John McNally" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, May 08, 2001 9:06 PM
Subject: Re: Use of ',' and '/' in template links with Apache as WebServer
> I have stated over and over again that one should not use '/' or '%2F'
> as the path separator when referring to templates. You should use the
> ','. TemplateLink could be modified to check for cases where templates
> are being referred to using '/' and converting to ',' but I do not like
> adding this inefficiency for everyone, when the correct thing to do is
> to use ',' and avoid the problem. But a TR.prop to allow '/' so that a
> static final boolean can be used in the conditional would be acceptable,
> if you care to submit a patch. Or you can extend TemplateLink and
> override setPage to make the conversion.
>
> To get the template parameter without conversion just do
> data.getParameters().getString("template");
>
> john mcnally
>
> Costas Stergiou wrote:
> >
> > Hi all,
> > I have a turbine+velocity app that is accessed from an
> > Apache WebServer with Ajp12 (or Ajp13). The problem is
> > that I cannot access any templates within directories because
> > the %2F is not recognized.
> > Is there any workaroung other than using the ',' to indicate the
> > sub-dir of a template?
> >
> > Is there a way to make the DynamicURI (TemplateLink) class
> > always use the ',' as a separator in order to avoid this problem
> > (of course, I could use the ',' at the setPage method, but the
> > templates and the links are too many...)
> >
> > Also, when I use the method data.getScreenTemplate() the
> > returned value always contains a '/' as a separator. How can I
> > avoid this?
> >
> > Thanks in advance,
> > Costas
>
> ---------------------------------------------------------------------
> 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]