You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Richard Monson-Haefel <mo...@gmail.com> on 2020/02/10 17:53:47 UTC

Expression Language ${initParam.whatever} not working

Hi,

Tomcat version: 9.0.30
Operating System: macOS 10.15.2

While I can access my initParam vis a JSP scriptlet I cannot access the
same initial paramter EL expression.

Here is the JSP code I'm using

<HTML>
  <BODY>
    <H1>
<font color="<%= config.getInitParameter("greeting_color")
%>">Hello</font><font color="black"> ${param.name} from hello.jsp</font>

</H1>
color is ${initParam["greeting_color"]}
  </BODY>
</HTML>

Here is my web.xml declaring the initial parameters

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">


  <!-- JSP Mapping -->
  <servlet>
      <servlet-name>HiJsp</servlet-name>
      <jsp-file>/hello.jsp</jsp-file>
      <init-param>
          <param-name>greeting_color</param-name>
          <param-value>green</param-value>
      </init-param>
  </servlet>
  <servlet-mapping>
      <servlet-name>HiJsp</servlet-name>
      <url-pattern>/hola/*</url-pattern>
  </servlet-mapping>
</web-app>

Here is the output (source)

<HTML>
<BODY>
<H1>
<font color="green">Hello</font><font color="black"> richard from hello.jsp
</font>
</H1>
color is
</BODY>
</HTML>

I don't understand why the JSP expression <%= %> works but the EL
expression ${ } doesn't.  I've tried many variations and other EL implicit
objects I've tried worked fine.

What am I missing?

The WAR is attached for your convenience.



-- 
Richard Monson-Haefel
https://twitter.com/rmonson
https://www.linkedin.com/in/monsonhaefel/

Re: Expression Language ${initParam.whatever} not working

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 10.02.2020 22:43, schrieb Richard Monson-Haefel:
> Thanks, Mark. Your explanation was good but the code didn't do it.

Then try

  ${pageContext.servletConfig.getInitParameter("greeting_color")}

Felix

> 
> On Mon, Feb 10, 2020 at 12:10 PM Mark Thomas <ma...@apache.org> wrote:
> 
>> On 10/02/2020 18:03, Richard Monson-Haefel wrote:
>> > Hi Simon,
>> >
>> > Thanks for the response but I don't think that is the issue. I can use
>> the
>> > <context-param> instead, but I want to use the initParam for the JSP page
>> > which is named and mapped in the <servlet> element.  Perhaps I'm still
>> > missing something.
>> 
>> The EL implicit object initParam holds the *ServletConext*'s init
>> params, not the Servlet's.
>> 
>> You probably want something like (untested)
>> 
>> ${ pageContext.servletConfig.initParameter("greeting_color") }
>> 
>> Mark
>> 
>> 
>> >
>> > On Mon, Feb 10, 2020 at 12:00 PM Simon Funnell <si...@gmail.com>
>> > wrote:
>> >
>> >> In your web.xml you want:
>> >>
>> >> <context-param>
>> >>     <param-name>greeting_color</param-name>
>> >>     <param-value>green</param-value>
>> >>   </context-param>
>> >>
>> >> I think you have defined an initialization parameter for the servlet,
>> not
>> >> the context.
>> >>
>> >> On Mon, 10 Feb 2020 at 17:54, Richard Monson-Haefel <
>> >> monsonhaefel@gmail.com>
>> >> wrote:
>> >>
>> >>> Hi,
>> >>>
>> >>> Tomcat version: 9.0.30
>> >>> Operating System: macOS 10.15.2
>> >>>
>> >>> While I can access my initParam vis a JSP scriptlet I cannot access the
>> >>> same initial paramter EL expression.
>> >>>
>> >>> Here is the JSP code I'm using
>> >>>
>> >>> <HTML>
>> >>>   <BODY>
>> >>>     <H1>
>> >>> <font color="<%= config.getInitParameter("greeting_color")
>> >>> %>">Hello</font><font color="black"> ${param.name} from
>> hello.jsp</font>
>> >>>
>> >>> </H1>
>> >>> color is ${initParam["greeting_color"]}
>> >>>   </BODY>
>> >>> </HTML>
>> >>>
>> >>> Here is my web.xml declaring the initial parameters
>> >>>
>> >>> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
>> >>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> >>>   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
>> >>>
>> http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
>> >> "
>> >>>   version="4.0"
>> >>>   metadata-complete="true">
>> >>>
>> >>>
>> >>>   <!-- JSP Mapping -->
>> >>>   <servlet>
>> >>>       <servlet-name>HiJsp</servlet-name>
>> >>>       <jsp-file>/hello.jsp</jsp-file>
>> >>>       <init-param>
>> >>>           <param-name>greeting_color</param-name>
>> >>>           <param-value>green</param-value>
>> >>>       </init-param>
>> >>>   </servlet>
>> >>>   <servlet-mapping>
>> >>>       <servlet-name>HiJsp</servlet-name>
>> >>>       <url-pattern>/hola/*</url-pattern>
>> >>>   </servlet-mapping>
>> >>> </web-app>
>> >>>
>> >>> Here is the output (source)
>> >>>
>> >>> <HTML>
>> >>> <BODY>
>> >>> <H1>
>> >>> <font color="green">Hello</font><font color="black"> richard from
>> >>> hello.jsp</font>
>> >>> </H1>
>> >>> color is
>> >>> </BODY>
>> >>> </HTML>
>> >>>
>> >>> I don't understand why the JSP expression <%= %> works but the EL
>> >>> expression ${ } doesn't.  I've tried many variations and other EL
>> >> implicit
>> >>> objects I've tried worked fine.
>> >>>
>> >>> What am I missing?
>> >>>
>> >>> The WAR is attached for your convenience.
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Richard Monson-Haefel
>> >>> https://twitter.com/rmonson
>> >>> https://www.linkedin.com/in/monsonhaefel/
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> >>> For additional commands, e-mail: users-help@tomcat.apache.org
>> >>
>> >
>> >
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>> 
>> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Expression Language ${initParam.whatever} not working

Posted by Richard Monson-Haefel <mo...@gmail.com>.
Thanks, Mark. Your explanation was good but the code didn't do it.

On Mon, Feb 10, 2020 at 12:10 PM Mark Thomas <ma...@apache.org> wrote:

> On 10/02/2020 18:03, Richard Monson-Haefel wrote:
> > Hi Simon,
> >
> > Thanks for the response but I don't think that is the issue. I can use
> the
> > <context-param> instead, but I want to use the initParam for the JSP page
> > which is named and mapped in the <servlet> element.  Perhaps I'm still
> > missing something.
>
> The EL implicit object initParam holds the *ServletConext*'s init
> params, not the Servlet's.
>
> You probably want something like (untested)
>
> ${ pageContext.servletConfig.initParameter("greeting_color") }
>
> Mark
>
>
> >
> > On Mon, Feb 10, 2020 at 12:00 PM Simon Funnell <si...@gmail.com>
> > wrote:
> >
> >> In your web.xml you want:
> >>
> >> <context-param>
> >>     <param-name>greeting_color</param-name>
> >>     <param-value>green</param-value>
> >>   </context-param>
> >>
> >> I think you have defined an initialization parameter for the servlet,
> not
> >> the context.
> >>
> >> On Mon, 10 Feb 2020 at 17:54, Richard Monson-Haefel <
> >> monsonhaefel@gmail.com>
> >> wrote:
> >>
> >>> Hi,
> >>>
> >>> Tomcat version: 9.0.30
> >>> Operating System: macOS 10.15.2
> >>>
> >>> While I can access my initParam vis a JSP scriptlet I cannot access the
> >>> same initial paramter EL expression.
> >>>
> >>> Here is the JSP code I'm using
> >>>
> >>> <HTML>
> >>>   <BODY>
> >>>     <H1>
> >>> <font color="<%= config.getInitParameter("greeting_color")
> >>> %>">Hello</font><font color="black"> ${param.name} from
> hello.jsp</font>
> >>>
> >>> </H1>
> >>> color is ${initParam["greeting_color"]}
> >>>   </BODY>
> >>> </HTML>
> >>>
> >>> Here is my web.xml declaring the initial parameters
> >>>
> >>> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
> >>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>>   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
> >>>
> http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
> >> "
> >>>   version="4.0"
> >>>   metadata-complete="true">
> >>>
> >>>
> >>>   <!-- JSP Mapping -->
> >>>   <servlet>
> >>>       <servlet-name>HiJsp</servlet-name>
> >>>       <jsp-file>/hello.jsp</jsp-file>
> >>>       <init-param>
> >>>           <param-name>greeting_color</param-name>
> >>>           <param-value>green</param-value>
> >>>       </init-param>
> >>>   </servlet>
> >>>   <servlet-mapping>
> >>>       <servlet-name>HiJsp</servlet-name>
> >>>       <url-pattern>/hola/*</url-pattern>
> >>>   </servlet-mapping>
> >>> </web-app>
> >>>
> >>> Here is the output (source)
> >>>
> >>> <HTML>
> >>> <BODY>
> >>> <H1>
> >>> <font color="green">Hello</font><font color="black"> richard from
> >>> hello.jsp</font>
> >>> </H1>
> >>> color is
> >>> </BODY>
> >>> </HTML>
> >>>
> >>> I don't understand why the JSP expression <%= %> works but the EL
> >>> expression ${ } doesn't.  I've tried many variations and other EL
> >> implicit
> >>> objects I've tried worked fine.
> >>>
> >>> What am I missing?
> >>>
> >>> The WAR is attached for your convenience.
> >>>
> >>>
> >>>
> >>> --
> >>> Richard Monson-Haefel
> >>> https://twitter.com/rmonson
> >>> https://www.linkedin.com/in/monsonhaefel/
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >>> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

-- 
Richard Monson-Haefel
https://twitter.com/rmonson
https://www.linkedin.com/in/monsonhaefel/

Re: Expression Language ${initParam.whatever} not working

Posted by Mark Thomas <ma...@apache.org>.
On 10/02/2020 18:03, Richard Monson-Haefel wrote:
> Hi Simon,
> 
> Thanks for the response but I don't think that is the issue. I can use the
> <context-param> instead, but I want to use the initParam for the JSP page
> which is named and mapped in the <servlet> element.  Perhaps I'm still
> missing something.

The EL implicit object initParam holds the *ServletConext*'s init
params, not the Servlet's.

You probably want something like (untested)

${ pageContext.servletConfig.initParameter("greeting_color") }

Mark


> 
> On Mon, Feb 10, 2020 at 12:00 PM Simon Funnell <si...@gmail.com>
> wrote:
> 
>> In your web.xml you want:
>>
>> <context-param>
>>     <param-name>greeting_color</param-name>
>>     <param-value>green</param-value>
>>   </context-param>
>>
>> I think you have defined an initialization parameter for the servlet, not
>> the context.
>>
>> On Mon, 10 Feb 2020 at 17:54, Richard Monson-Haefel <
>> monsonhaefel@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> Tomcat version: 9.0.30
>>> Operating System: macOS 10.15.2
>>>
>>> While I can access my initParam vis a JSP scriptlet I cannot access the
>>> same initial paramter EL expression.
>>>
>>> Here is the JSP code I'm using
>>>
>>> <HTML>
>>>   <BODY>
>>>     <H1>
>>> <font color="<%= config.getInitParameter("greeting_color")
>>> %>">Hello</font><font color="black"> ${param.name} from hello.jsp</font>
>>>
>>> </H1>
>>> color is ${initParam["greeting_color"]}
>>>   </BODY>
>>> </HTML>
>>>
>>> Here is my web.xml declaring the initial parameters
>>>
>>> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
>>>                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
>> "
>>>   version="4.0"
>>>   metadata-complete="true">
>>>
>>>
>>>   <!-- JSP Mapping -->
>>>   <servlet>
>>>       <servlet-name>HiJsp</servlet-name>
>>>       <jsp-file>/hello.jsp</jsp-file>
>>>       <init-param>
>>>           <param-name>greeting_color</param-name>
>>>           <param-value>green</param-value>
>>>       </init-param>
>>>   </servlet>
>>>   <servlet-mapping>
>>>       <servlet-name>HiJsp</servlet-name>
>>>       <url-pattern>/hola/*</url-pattern>
>>>   </servlet-mapping>
>>> </web-app>
>>>
>>> Here is the output (source)
>>>
>>> <HTML>
>>> <BODY>
>>> <H1>
>>> <font color="green">Hello</font><font color="black"> richard from
>>> hello.jsp</font>
>>> </H1>
>>> color is
>>> </BODY>
>>> </HTML>
>>>
>>> I don't understand why the JSP expression <%= %> works but the EL
>>> expression ${ } doesn't.  I've tried many variations and other EL
>> implicit
>>> objects I've tried worked fine.
>>>
>>> What am I missing?
>>>
>>> The WAR is attached for your convenience.
>>>
>>>
>>>
>>> --
>>> Richard Monson-Haefel
>>> https://twitter.com/rmonson
>>> https://www.linkedin.com/in/monsonhaefel/
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Expression Language ${initParam.whatever} not working

Posted by Richard Monson-Haefel <mo...@gmail.com>.
Hi Simon,

Thanks for the response but I don't think that is the issue. I can use the
<context-param> instead, but I want to use the initParam for the JSP page
which is named and mapped in the <servlet> element.  Perhaps I'm still
missing something.

On Mon, Feb 10, 2020 at 12:00 PM Simon Funnell <si...@gmail.com>
wrote:

> In your web.xml you want:
>
> <context-param>
>     <param-name>greeting_color</param-name>
>     <param-value>green</param-value>
>   </context-param>
>
> I think you have defined an initialization parameter for the servlet, not
> the context.
>
> On Mon, 10 Feb 2020 at 17:54, Richard Monson-Haefel <
> monsonhaefel@gmail.com>
> wrote:
>
> > Hi,
> >
> > Tomcat version: 9.0.30
> > Operating System: macOS 10.15.2
> >
> > While I can access my initParam vis a JSP scriptlet I cannot access the
> > same initial paramter EL expression.
> >
> > Here is the JSP code I'm using
> >
> > <HTML>
> >   <BODY>
> >     <H1>
> > <font color="<%= config.getInitParameter("greeting_color")
> > %>">Hello</font><font color="black"> ${param.name} from hello.jsp</font>
> >
> > </H1>
> > color is ${initParam["greeting_color"]}
> >   </BODY>
> > </HTML>
> >
> > Here is my web.xml declaring the initial parameters
> >
> > <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
> >   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
> >                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd
> "
> >   version="4.0"
> >   metadata-complete="true">
> >
> >
> >   <!-- JSP Mapping -->
> >   <servlet>
> >       <servlet-name>HiJsp</servlet-name>
> >       <jsp-file>/hello.jsp</jsp-file>
> >       <init-param>
> >           <param-name>greeting_color</param-name>
> >           <param-value>green</param-value>
> >       </init-param>
> >   </servlet>
> >   <servlet-mapping>
> >       <servlet-name>HiJsp</servlet-name>
> >       <url-pattern>/hola/*</url-pattern>
> >   </servlet-mapping>
> > </web-app>
> >
> > Here is the output (source)
> >
> > <HTML>
> > <BODY>
> > <H1>
> > <font color="green">Hello</font><font color="black"> richard from
> > hello.jsp</font>
> > </H1>
> > color is
> > </BODY>
> > </HTML>
> >
> > I don't understand why the JSP expression <%= %> works but the EL
> > expression ${ } doesn't.  I've tried many variations and other EL
> implicit
> > objects I've tried worked fine.
> >
> > What am I missing?
> >
> > The WAR is attached for your convenience.
> >
> >
> >
> > --
> > Richard Monson-Haefel
> > https://twitter.com/rmonson
> > https://www.linkedin.com/in/monsonhaefel/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
>


-- 
Richard Monson-Haefel
https://twitter.com/rmonson
https://www.linkedin.com/in/monsonhaefel/

Re: Expression Language ${initParam.whatever} not working

Posted by Simon Funnell <si...@gmail.com>.
In your web.xml you want:

<context-param>
    <param-name>greeting_color</param-name>
    <param-value>green</param-value>
  </context-param>

I think you have defined an initialization parameter for the servlet, not
the context.

On Mon, 10 Feb 2020 at 17:54, Richard Monson-Haefel <mo...@gmail.com>
wrote:

> Hi,
>
> Tomcat version: 9.0.30
> Operating System: macOS 10.15.2
>
> While I can access my initParam vis a JSP scriptlet I cannot access the
> same initial paramter EL expression.
>
> Here is the JSP code I'm using
>
> <HTML>
>   <BODY>
>     <H1>
> <font color="<%= config.getInitParameter("greeting_color")
> %>">Hello</font><font color="black"> ${param.name} from hello.jsp</font>
>
> </H1>
> color is ${initParam["greeting_color"]}
>   </BODY>
> </HTML>
>
> Here is my web.xml declaring the initial parameters
>
> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
>                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
>   version="4.0"
>   metadata-complete="true">
>
>
>   <!-- JSP Mapping -->
>   <servlet>
>       <servlet-name>HiJsp</servlet-name>
>       <jsp-file>/hello.jsp</jsp-file>
>       <init-param>
>           <param-name>greeting_color</param-name>
>           <param-value>green</param-value>
>       </init-param>
>   </servlet>
>   <servlet-mapping>
>       <servlet-name>HiJsp</servlet-name>
>       <url-pattern>/hola/*</url-pattern>
>   </servlet-mapping>
> </web-app>
>
> Here is the output (source)
>
> <HTML>
> <BODY>
> <H1>
> <font color="green">Hello</font><font color="black"> richard from
> hello.jsp</font>
> </H1>
> color is
> </BODY>
> </HTML>
>
> I don't understand why the JSP expression <%= %> works but the EL
> expression ${ } doesn't.  I've tried many variations and other EL implicit
> objects I've tried worked fine.
>
> What am I missing?
>
> The WAR is attached for your convenience.
>
>
>
> --
> Richard Monson-Haefel
> https://twitter.com/rmonson
> https://www.linkedin.com/in/monsonhaefel/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org