2009-02-06 3 views
0

Есть ли способ, что я могу использовать префикс в качестве параметра или на пути нападающего, как:Использование префикса в качестве параметра в фа вперед

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

Почему вы не используете атрибут запроса или сеанса – Fred

ответ

0

я не уверен, что это означает с prefix, я Предположим, вы имеете в виду имя сервлета. Предположим, у вас есть этот вперед в вашем 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 на основе одного из форвардов, определенные в вашем struts-config.xml, как, например:

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

Смежные вопросы