SERVLET_MAPPING 后缀 .do 在 Struts1 中向 Spring Boot 迁移

穆罕默德·恩纳赫迪·伊德里西

在从 Struts1 迁移到 Springbooted Struts1 的过程中,我遇到了解决问题的行动。

使用ServletRegistrationBean,Struts1 将按预期运行(调用 someAction.do 时,它可以正常工作)。

但是,问题与生成的 HTML 相关:

<html:form action="someAction" .../>

的 HTML 呈现someAction必须以 为后缀.do,但事实并非如此。

<form action="someAction" .../>

在调试 html taglib 后,我发现 web.xml 中的等效参数servlet-mapping实际上并没有复制到 中ServletRegistrationBean,尽管.addUrlMappings("*.do")指定了

在下图中,pageContext.getAttribute() 为基本 Struts1 应用程序检索 '*.do',但它在 Springbooted 应用程序中返回 null。

在此处输入图片说明

我该怎么做才能pageContext.getAttribute(Globals.SERVLET_KEY, PageContext.APPLICATION_SCOPE);返回“*.do”?

@Bean
public ServletRegistrationBean strutsActionServlet() {
        
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
    servletRegistrationBean.setServlet(new myActionServlet());
    servletRegistrationBean.setLoadOnStartup(10);
    servletRegistrationBean.setName("StrutsServlet");
    servletRegistrationBean.addUrlMappings("*.do");

    servletRegistrationBean.addInitParameter("config", "/WEB-INF/struts-config.xml");
    return servletRegistrationBean;
}
穆罕默德·恩纳赫迪·伊德里西

我是这样解决的ServletContextEvent

public void contextInitialized (ServletContextEvent sce) {
    ServletContext sc = sce.getServletContext ();
    sc.setAttribute(Globals.SERVLET_KEY, "*.do");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从struts1到struts2的迁移消息资源

Struts1 到 Struts2 的迁移策略

使用struts2-struts1-plugin从Struts1迁移Struts2

从Struts迁移到Spring

Flyway可重复迁移-在Spring Boot中不执行

Spring Boot 中从 org.joda.time.Interval 迁移

Struts1和Struts2可以在一个应用程序中具有相同的URL扩展名(* .do)吗?

将Spring Boot 1.5.10迁移到Spring Boot 2.0.3

从Spring Boot Security迁移到Keycloak

Spring Boot Flyway迁移占位符

Spring Boot 2迁移依赖关系问题

Spring Boot覆盖战争文件名的后缀

Spring Boot 2.2.6-MVC |开发指南 如何忽略application.properties中定义的后缀和前缀

在将Spring Boot项目迁移到Gradle Kotlin DSL中摆脱警告

Flyway迁移过程中是否需要停止Spring Boot应用程序?

从1.5到2.0的Spring Boot迁移,并在JPA存储库查询中的参数周围加上引号

Spring Boot 2中的编程servlet注册

从Spring Boot Oauth2迁移到Spring Security 5

基本的struts1 问题:Struts 1 中的ActionForm 数据来自哪里?

是struts1中的<html:base />等于Struts 2中的<s:head />

向字符串列表中添加 1 个以上的后缀,不影响序列

对于以下Struts1中的选择标记代码,等效的Struts2代码

将Spring Boot 1.5.8迁移到2.1.5-Gradle问题

使用 H2 和 Spring Boot 迁移 Liquibase

迁移Spring Boot时找不到Bean参数

AMQP convertSendAndReceive无法从Spring Boot 1.5迁移到2

从Spring Boot 1.5迁移到2.0后出现NoSuchBeanDefinitionException

Spring Boot Application在启动时未运行Flyway迁移

Spring Boot 2.0.0迁移-JPA存储库保存问题