Проблема сопоставления действий миграции с Struts1 на Struts2

Я конвертирую свой проект struts1 в struts2 с помощью плагина struts2-struts1 (pom.xml) В pom.xml я включил зависимость

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-struts1-plugin</artifactId>
    <version>2.3.36</version>
</dependency>

В конфигурационном файле struts1 сопоставление действий имеет определенный тип

<action-mappings type = "com.inetpsa.fwk.struts.config.FWKActionMapping">

В struts2 как это можно использовать, если у меня нет атрибута «тип»?

Для получения дополнительной информации: я пытаюсь преобразовать проект struts1 в struts2, и я использую struts2-struts1-plugin для преобразования, чтобы не было необходимости изменять ваши действия и классы формы.

Теперь в struts-config.xml я использую интрецепторы

<package name = "struts" extends = "xxx-default" namespace = "/">
        <interceptors>
            <interceptor name = "LoginForm" class = "com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
                <param name = "className">com.xxxx.xxx.beans.forms.LoginForm</param>
                <param name = "name">loginForm</param>
                <param name = "scope">request</param>
            </interceptor>

В struts1

<action-mappings type = "com.inetpsa.fwk.struts.config.FWKActionMapping"> 

это полностью квалифицированный класс Java для использования при создании экземпляров объектов ActionMapping.

Вопрос в том, как я могу сделать этот тип в Strust2

Еще пример

в S1 у меня есть один метод

ActionForward doExecute(ActionMapping arg0, ActionForm arg1, HttpServletRequest request, HttpServletResponse response) throws Exception {

ActionMapping -> ActionConfig[path=/newApvprStart,input=marque,name=MarqueForm,scope=request,type=com.inetpsa.oin.actions.OinStartAction,validate=false,cancellable=false
null
false
true

Запрос = -> com.inetpsa.jbn.servlet.wrappers.HttpServletRequestWrapper Ответ -> org.apache.catalina.connector.ResponseFacade

в s2, когда я использую плагин s2 s1

ActionMapping 
wrapper -> {ActionConfig newApvprStart (org.apache.struts2.s1.Struts1Action.execute()) - action - file:/C:/Users/E491181/workspace/poi-3/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/OinJipWeb/WEB-INF/classes/struts.xml:53:99}
null
null
null
false

запрос -> org.apache.struts2.dispatcher.StrutsRequestWrapper ответ -> org.apache.catalina.connector.ResponseFacade

Что использовать? Что это такое / для чего? Какие функции вы пытаетесь продублировать? Без подробностей помочь невозможно.

Dave Newton 17.12.2018 17:25

Я пытаюсь преобразовать проект struts1 в struts2, отредактированное описание для получения дополнительной информации

lampdev 17.12.2018 17:36

Это ничего не говорит о том, что такое FWKActionMapping, что он делает и т. д. Все, что делает плагин S1, - это (в основном) упорядочивает данные в действиях S1 и из них на основе функциональности S2 и страниц JSP. Не зная, что вы на самом деле необходимость, помочь невозможно. (Все это говорит о том, что лично я бы все равно что-то переписал или запускал приложения параллельно.)

Dave Newton 17.12.2018 17:44

FwkActionMapping - мой собственный класс сопоставления,

lampdev 17.12.2018 17:46

Без шуток. Я догадался. Как это помогает мне угадать, какие функции вам нужно будет продублировать в S2?

Dave Newton 17.12.2018 17:49

Необходимо продублировать в S2 тип отображения для отображений действий, как вы можете видеть в <action-mapping, мы можем определить тип, но этого нет в S2?

lampdev 17.12.2018 18:12

... Вы не можете. Вот почему я много раз спрашивал, что такое функциональность, который вам нужно продублировать, но по какой-то причине вы не ответите. Так что нет возможности помочь. Удачи!

Dave Newton 17.12.2018 20:25

Вот документация о том, как отображать в действии в S2. Он полностью отличается от S1. struts.apache.org/core-developers/action-configuration.html

Paul Zepernick 18.12.2018 01:48

Дэйв, есть ли альтернатива где-нибудь или по классу? В классе мы можем указать ActionMapper?

lampdev 19.12.2018 07:03

Также при использовании плагина struts2 нужно ли нам также изменять web.xml? поскольку мой сервелт в S1 - это com.xx.xx.servlet.struts.XXXActionServlet, а в S2 в web.xml у меня теперь есть диспетчер s2 .. как теперь мой S2 может перейти на com.xx.xx.servlet.struts.XXXActionServlet с помощью с использованием плагина S2-S2

lampdev 19.12.2018 08:53

@DaveNewton, я отредактировал описание для получения дополнительной информации

lampdev 19.12.2018 12:26

Вам не хватает того, о чем я говорю: эквивалента нет. Вот почему я просил предоставить вам функциональность, которую вы пытаетесь скопировать. Вы не переходите к сервлету действия S1 в S2. Вот почему я сказал запускать приложения S1 и S2 параллельно: таким образом вам не нужно переносить все свои JSP-страницы одновременно, и ваши функции S1 точно дублируются, а не просто обертывают действия S1 в потоке обработки запросов S2. Я не знаю другого способа объяснить это.

Dave Newton 19.12.2018 14:26

Я просто хочу перенести S1 на S2, не меняя действий и форм, в S1 у проекта также есть обертки, поскольку я сказал, что у них есть сопоставление действий Custoim

lampdev 19.12.2018 14:45

И я говорю, что если вы хотите это сделать, вам нужно будет продублировать функциональность вашего настраиваемого картографа в S2, и если вы делаете что-то «необычное» с вашими классами ActionForm, вам, возможно, придется настроить и это. Суть в том, что S2 - это совершенно другая структура, чем S1. Вы получаете практически нулевую выгоду, беря приложение S1 и делая вид, что это приложение S2. Я говорю о том, что вы должны запускать два приложения параллельно и преобразовывать действие за действием, иначе вы просто тратите время и энергию.

Dave Newton 19.12.2018 15:11

да, так что stratergy будет делать один поток, такой же, как S1 в S2, и идти шаг за шагом

lampdev 19.12.2018 15:12
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
15
414
0

Другие вопросы по теме