Использование префикса в качестве параметра в fa forward - PullRequest
0 голосов
/ 06 февраля 2009

Можно ли как-нибудь использовать префикс в качестве параметра или на пути форварда, например:

<forward name="test" path="/switch.do&page='/test.do'&prefix='/test'"/>

1 Ответ

0 голосов
/ 16 декабря 2009

Я не уверен, что подразумевается под 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 и как получить имена форвардов и имена сервлетов, на которые они указывают, у вас не должно возникнуть проблем при создании форварда, который вам нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...