[ 
https://issues.apache.org/jira/browse/JEXL-198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15316640#comment-15316640
 ] 

Terefang Verigorn edited comment on JEXL-198 at 6/6/16 3:29 PM:
----------------------------------------------------------------

i poked around the source and like to propose the following fixes:

in JxltEngine.Template insert:
{code}
public Map<String, Object> getPragmas();
{code}

in TemplateScript insert:
{code}
public Map<String, Object> getPragmas()
{
return this.getScript().getPragmas();
}
{code}

hope that helps.



was (Author: terefang):
i poked around the source and like to propose the following fixes:

in JxltEngine.Template insert:
{code}
Map<String, Object> getPragmas();
{code}

in TemplateScript insert:
{code}
Map<String, Object> getPragmas()
{
return this.getScript().getPragmas();
}
{code}

hope that helps.


> JxltEngine Template deos not expose pragmas
> -------------------------------------------
>
>                 Key: JEXL-198
>                 URL: https://issues.apache.org/jira/browse/JEXL-198
>             Project: Commons JEXL
>          Issue Type: Improvement
>    Affects Versions: 3.0, 3.0.1, 3.1
>         Environment: any
>            Reporter: Terefang Verigorn
>            Priority: Minor
>
> JexlScript objects have a getPragmas() method which is awesome useful to 
> communicate static information after compilation/parsing but before 
> evaluation.
> JxltEngine.Template objects lack that method.
> usage case: JexlServlet vs JexlTemplateServlet
> JexlServlet/output-csv.jxp:
> {code}
> #pragma output-charset "UTF-8"
> #pragma output-content-type "text/csv"
> _out.println("col1;col2;col3;col4;col5");
> for(row : _data)
> {
> _out.print(row.col1+";");
> _out.print(row.col2+";");
> _out.print(row.col3+";");
> _out.print(row.col4+";");
> _out.println(row.col5);
> }
> {code}
> JexlTemplateServlet/output-csv.jxt:
> {code}
> $$ #pragma output-charset "UTF-8"
> $$ #pragma output-content-type "text/csv"
> col1;col2;col3;col4;col5
> $$ for(row : _data) {
> ${row.col1};${row.col2};${row.col3};${row.col4};${row.col5}
> $$ }
> {code}
> but since we cant get the pragmas from the template we have to write;
> {code}
> $$ http_response.setCharset("UTF-8");
> $$ http_response.setContentType("text/csv");
> col1;col2;col3;col4;col5
> $$ for(row : _data) {
> ${row.col1};${row.col2};${row.col3};${row.col4};${row.col5}
> $$ }
> {code}
> The actual case is that the templating engine cant be used "technology 
> agnostic", as we might want to use the same script for both http and mail (or 
> sms, xmpp, etc) formatting



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to