我尝试运行以下行。

<%=application.getInitParameter("tagline")%>
<br />
<%=config.getInitParameter("admincontact")%>

${initParam.tagline}
<br />
${pageContext.servletConfig.initParameter("admincontact")}

我的web.xml是
<servlet>
<jsp-file>/index.jsp</jsp-file>
<init-param>
    <param-name>admincontact</param-name>
    <param-value>8939302763</param-value>
</init-param>
</servlet>
    <context-param>
<param-name>tagline</param-name>
<param-value>Each one Plant one</param-value>

我有一个例外${pageContext.servletConfig.initParameter("admincontact")}和null值<%=config.getInitParameter("admincontact")%>

问候,
约翰

最佳答案

关于此有一个FAQ on JavaRanch

它指出以下内容;

如何使用EL访问servlet初始化参数?

不能使用以下语法访问servlet初始化参数:

${pageContext.servletConfig.initParameter.name}
您无法使用此技术获取Servlet初始化参数。的
getInitParameter(java.lang.String name)在这种情况下不适合,
因为它需要一些参数。

根据JavaBean规范,该属性具有getter和setter
形式的方法

public type1 getXXX()-不带参数。

public void setXXX(type1)
现在,将pageContext视为bean对象。的
PageContext类具有诸如getServletConfig(),getRequest(),
getSession()等。您可以访问这些内容,例如pageContext.page,
EL中的pageContext.request等。

ServletContext对象有几种方法,例如getMajorVersion(),
没有参数的getMinorVersion()。所以我们可以使用这些方法
将其视为sevletContext bean的属性
pageContext.servletContext.majorVersion和
pageContext.servletContext.minorVersion。

如果要使用EL访问Servlet初始化参数,则可以
更好地为servlet创建一个初始化参数的Map,
将其作为范围变量放置在请求中-假设
initParameters。这样便可以通过名称获取任何参数
与$ {requestScope.initParameters.name}。

注意:

我们可以使用${initParam.name}访问上下文初始化参数

关于jSTL - 在scriptlet和EL中使用ServletContext和ServletConfig,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6750645/

10-10 05:15