Я не уверен, что подразумевается под prefix
, я полагаю, вы ссылаетесь на имя сервлета. Предположим, у вас есть forward в вашем struts-config.xml
как часть action
отображения:
<forward name="test" path="/switch" />
Если вы хотите получить имена форвардов ', доступные для вашего действия, вы можете получить их с помощью mapping.findForwards()
.
Если у вас уже есть forward
, например:
ActionForward forward = mapping.findForward("test");
имя форварда можно получить с помощью:
String fwdName = forward.getName(); // returns "test"
и имя или путь сервлета с:
String servletPath = forward.getPath(); // returns "/switch.do"
вы также можете получить его из request
объекта:
String servletPath = request.getServletPath();
Хорошо, теперь, если вы хотите изменить форвард перед возвратом элемента управления в Struts, чтобы добавить дополнительные параметры, вам нужно будет создать новый ActionForward
на основе одного из форвардов, определенных в * 1029. * как например:
ActionForward forward = mapping.findForward("test");
StringBuilder path = new StringBuilder(forward.getPath());
path.append("?id=");
path.append(someobject.getId());
return new ActionForward(path.toString(), true); // `true` means "do a redirect"
Это заставит Struts перенаправить URL-адрес, например /switch.do?id=3
Зная, как создать новый ActionForward
и как получить имена форвардов и имена сервлетов, на которые они указывают, у вас не должно возникнуть проблем при создании форварда, который вам нужен.