Я конвертирую свой проект 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
Я пытаюсь преобразовать проект struts1 в struts2, отредактированное описание для получения дополнительной информации
Это ничего не говорит о том, что такое FWKActionMapping
, что он делает и т. д. Все, что делает плагин S1, - это (в основном) упорядочивает данные в действиях S1 и из них на основе функциональности S2 и страниц JSP. Не зная, что вы на самом деле необходимость, помочь невозможно. (Все это говорит о том, что лично я бы все равно что-то переписал или запускал приложения параллельно.)
FwkActionMapping - мой собственный класс сопоставления,
Без шуток. Я догадался. Как это помогает мне угадать, какие функции вам нужно будет продублировать в S2?
Необходимо продублировать в S2 тип отображения для отображений действий, как вы можете видеть в <action-mapping, мы можем определить тип, но этого нет в S2?
... Вы не можете. Вот почему я много раз спрашивал, что такое функциональность, который вам нужно продублировать, но по какой-то причине вы не ответите. Так что нет возможности помочь. Удачи!
Вот документация о том, как отображать в действии в S2. Он полностью отличается от S1. struts.apache.org/core-developers/action-configuration.html
Дэйв, есть ли альтернатива где-нибудь или по классу? В классе мы можем указать ActionMapper?
Также при использовании плагина struts2 нужно ли нам также изменять web.xml? поскольку мой сервелт в S1 - это com.xx.xx.servlet.struts.XXXActionServlet, а в S2 в web.xml у меня теперь есть диспетчер s2 .. как теперь мой S2 может перейти на com.xx.xx.servlet.struts.XXXActionServlet с помощью с использованием плагина S2-S2
@DaveNewton, я отредактировал описание для получения дополнительной информации
Вам не хватает того, о чем я говорю: эквивалента нет. Вот почему я просил предоставить вам функциональность, которую вы пытаетесь скопировать. Вы не переходите к сервлету действия S1 в S2. Вот почему я сказал запускать приложения S1 и S2 параллельно: таким образом вам не нужно переносить все свои JSP-страницы одновременно, и ваши функции S1 точно дублируются, а не просто обертывают действия S1 в потоке обработки запросов S2. Я не знаю другого способа объяснить это.
Я просто хочу перенести S1 на S2, не меняя действий и форм, в S1 у проекта также есть обертки, поскольку я сказал, что у них есть сопоставление действий Custoim
И я говорю, что если вы хотите это сделать, вам нужно будет продублировать функциональность вашего настраиваемого картографа в S2, и если вы делаете что-то «необычное» с вашими классами ActionForm
, вам, возможно, придется настроить и это. Суть в том, что S2 - это совершенно другая структура, чем S1. Вы получаете практически нулевую выгоду, беря приложение S1 и делая вид, что это приложение S2. Я говорю о том, что вы должны запускать два приложения параллельно и преобразовывать действие за действием, иначе вы просто тратите время и энергию.
да, так что stratergy будет делать один поток, такой же, как S1 в S2, и идти шаг за шагом
Что использовать? Что это такое / для чего? Какие функции вы пытаетесь продублировать? Без подробностей помочь невозможно.