gpt4 book ai didi

java - 如何使用 Guice 3.0 为 JSP 提供服务?

转载 作者:行者123 更新时间:2023-11-29 03:39:29 27 4
gpt4 key购买 nike

我正在尝试从 Guice 提供 JSP。我没有找到有关如何执行此操作的任何基本示例!

我的设置:

web.xml

<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
<listener-class>org.example.Bootstrap</listener-class>
</listener>

org.example.Bootstrap(类似...)

public class Bootstrap extends GuiceServletContextListener 
{
@Override
protected Injector getInjector()
{
return Guice.createInjector(new org.example.BootstrapModule());
}

}

org.example.BootstrapModule(类似...)

public class BootstrapModule extends ServletModule
{
@Override
protected void configureServlets()
{
// serve .JSPs
bind(org.apache.jasper.servlet.JspServlet.class).in(Scopes.SINGLETON);
serveRegex("/.*\\.jsp").with(org.apache.jasper.servlet.JspServlet.class);

// serve my controllers
bind(MainServlet.class).in(Scopes.SINGLETON);
serveRegex("/.*").with(MainServlet.class);
}
}

MainServlet 中,我做了类似的事情:

request.getRequestDispatcher("test.jsp").include(request, response);

request.getRequestDispatcher("test.jsp").forward(request, response);

request.getRequestDispatcher("/test.jsp").include(request, response);

request.getRequestDispatcher("/test.jsp").forward(request, response);

我的 test.jspwebapp/test.jsp 中(我使用 Maven)。

没用!我总是以这样的错误告终:

SEVERE: PWC6117: File XXX not found

Guice 传递给 org.apache.jasper.servlet.JspServlet 的信息似乎不是 JSP 工作所需的信息。

我错过了什么?我什至必须手动指定 org.apache.jasper.servlet.JspServlet 吗?从 Guice 正确提供 JSP 需要什么?

最佳答案

这似乎是一个 known bug .

作为解决方法,有人说您可以编译 Guice 的 TRUNK。我也发现设置

request.setAttribute(org.apache.jasper.Constants.JSP_FILE, "/test.jsp");

转发前也有效。

但在 Guice 在公开发行版中修复之前,我必须运行更多测试以了解我将使用什么。

关于java - 如何使用 Guice 3.0 为 JSP 提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13812138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com