【问题标题】:How to setup jsp-config at JavaConfig如何在 JavaConfig 中设置 jsp-config
【发布时间】:2013-04-18 06:45:57
【问题描述】:

在 web.xml 中

<jsp-config>
    <jsp-property-group>
        <description> </description>
        <display-name>JSPConfiguration</display-name>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>EUC-KR</page-encoding>  
    </jsp-property-group>
</jsp-config>

在 JavaConfig 中

public class WebInitializer implements WebApplicationInitializer {

    public void onStartup(ServletContext servletContext)
            throws ServletException {
        //  ??
        }
}

如何在 JavaConfig 中设置 jsp-config?

【问题讨论】:

  • 你可以通过servletContext.getJspConfigDescriptor().getJspPropertyGroups();返回一个Collection&lt;JspPropertyGroupDescriptor&gt;来访问它,它有一个add(JspPropertyGroupDescriptor)方法。 JspPropertyGroupDescriptor 是您必须实现的接口。您最好拥有部分 web.xml 和部分 java 配置。

标签: java spring-mvc servlets web.xml


【解决方案1】:

您可以通过

访问它
servletContext.getJspConfigDescriptor().getJspPropertyGroups();

返回一个Collection&lt;JspPropertyGroupDescriptor&gt;,它有一个 add(JspPropertyGroupDescriptor) 方法。 JspPropertyGroupDescriptor 是 您必须实现的接口。你可能过得更好 具有部分 web.xml 和部分 java 配置。

Sotirios Delimanolis Apr 24 at 16:07

【讨论】:

    【解决方案2】:

    这段代码应该可以工作:

        JspConfigDescriptor j = new JspConfigDescriptor()
        {
    
            @Override
            public Collection<TaglibDescriptor> getTaglibs()
            {
                // TODO Auto-generated method stub
                return null;
            }
    
            @Override
            public Collection<JspPropertyGroupDescriptor> getJspPropertyGroups()
            {
                Collection<JspPropertyGroupDescriptor> c = new ArrayList<JspPropertyGroupDescriptor>();
                JspPropertyGroupDescriptorImpl pgDescriptor = new JspPropertyGroupDescriptorImpl();
                pgDescriptor.setIsXml(Boolean.TRUE.toString());
                pgDescriptor.getUrlPattern().add("/js/generated/*");
                pgDescriptor.setElIgnored(Boolean.FALSE.toString());
                pgDescriptor.setPageEncoding("UTF-8");
                c.add(pgDescriptor);
                return null;
            }
        };
        servletContext.setJspConfigDescriptor(j);
    

    但最后一个语句将在 Tomcat 8 之后可用

    【讨论】:

    • 你能扩展一下你的例子吗? ServletContext 似乎没有 setJspConfigDescriptor 方法,至少在 tomcat-embed-core-8.0.5.jar 中没有
    • 在 tomcat-embed-core-8.0.23.jar@javax.servlet.ServletContext 或 javax.servlet-api-3.1.0.jar@javax.servlet.ServletContext 中没有 setJspConfigDescriptor .. .
    • @maxb 要编写 JSP 设置,需要访问 JSP 引擎实现,或者继续使用 web.xml。在这个答案servletContext 的代码 sn-p 中是org.apache.catalina.Context,而不是javax.servlet.ServletContext。见stackoverflow.com/a/59344649/156973
    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多