我试着运行以下几行.
<%=application.getInitParameter("tagline")%>
<br />
<%=config.getInitParameter("admincontact")%>
${initParam.tagline}
<br />
${pageContext.servletConfig.initParameter("admincontact")}
Run Code Online (Sandbox Code Playgroud)
我的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>
Run Code Online (Sandbox Code Playgroud)
我得到一个异常at
${pageContext.servletConfig.initParameter("admincontact")}
和null值
<%=config.getInitParameter("admincontact")%>.
问候,约翰
关于这一点,JavaRanch上有一个FAQ.
它陈述如下;
如何使用EL访问servlet init参数?
您不能使用以下语法来访问servlet init参数:
${pageContext.servletConfig.initParameter.name}您无法使用此技术获取Servlet init参数.getInitParameter(java.lang.String name)不适合这种情况,因为它需要一些参数.
根据JavaBean规范,该属性在表单中具有getter和setter方法
public type1 getXXX()- 没有任何论据.
public void setXXX(type1)现在将pageContext视为bean对象.PageContext类具有getServletConfig(),getRequest(),getSession()等方法.您可以在EL中访问这些类似pageContext.page,pageContext.request等.
ServletContext对象有几个方法,比如getMajorVersion(),getMinorVersion()没有args.所以我们可以访问这些方法将它作为sevletContext bean的属性处理为pageContext.servletContext.majorVersion和pageContext.servletContext.minorVersion.
如果你想使用EL访问Servlet init参数,那么最好为servlet创建一个init参数的Map,并将它作为一个范围变量放在请求中 - 假设是initParameters.然后,您可以使用$ {requestScope.initParameters.name}按名称获取任何参数.
注意:
我们可以访问上下文init参数
${initParam.name}
| 归档时间: |
|
| 查看次数: |
5379 次 |
| 最近记录: |