Мне нужно передать какой-то параметр из действия в другое действие, например, чтобы отслеживать событие.
Как лучше всего это сделать?
Я бы не использовал параметры сеанса. Спасибо
Мне нужно передать какой-то параметр из действия в другое действие, например, чтобы отслеживать событие.
Как лучше всего это сделать?
Я бы не использовал параметры сеанса. Спасибо
Предполагая, что вы находитесь на стороне сервера в рамках одного действия и хотите вызвать другое действие с некоторыми параметрами.
Вы можете использовать тег s:action для вызова другого действия, возможно, с дополнительными/другими параметрами, чем исходное действие:
<s:action name="myAction" ignoreContextParams="true" executeResult="true">
<s:param name="foo" value="bar"/>
</s:action>
Вы также можете использовать стандартный тип результата struts-xml с параметром:
<result name="success" type="redirect" >
<param name="location">foo.jsp?foo=${bar}</param>
<param name="parse">true</param>
<param name="encode">true</param>
</result>
Если вы хотите перенаправление на стороне клиента, вам нужно отправить URL-адрес обратно клиенту с правильными параметрами и, возможно, использовать какой-либо javascript, чтобы перейти туда.
<s:url action="myAction" >
<s:param name="foo" value="bar"/>
</s:url>
Используйте тег url в основных тегах struts, пример приведен ниже:
<s:url var="idurl" action="EditEnterprise">
<s:param name="enterpriseId">
<s:property value="enterpriseId" />
</s:param>
</s:url>
На самом деле вы собираетесь передать значение параметра одного действия из одного действия в другое.
просто включите переменную bean с тем же именем. какой параметр вы собираетесь получить при действии (действии приемника).
<action name="ForwardAction" class="...">
<result name="success" type="chain">ReceiverAction</result>
</action>
Параметр ForwardAction будет перенаправлен в ReceiverAction. вы можете использовать его. но включите одно и то же имя компонента в оба действия.
если вы собираетесь получить идентификатор пользователя в средствах приема.,
Это должно быть в обоих действиях.,
private int userid;
public void setUserid(int id){
this.userid = userid;
}
public int getUserid(){
return userid;
}
на самом деле область действия и перехватчик servletConfig можно использовать в struts2 для автоматического извлечения параметров контекста действия (запрос/сеанс и т. д.)