Muszę przekazać jakiś parametr z akcji do innej akcji, na przykład, aby zachować ślad zdarzenia.Parametry Struts2 między akcjami
Jaki jest najlepszy sposób na zrobienie tego?
Nie użyłbym parametrów sesji. Dzięki
Muszę przekazać jakiś parametr z akcji do innej akcji, na przykład, aby zachować ślad zdarzenia.Parametry Struts2 między akcjami
Jaki jest najlepszy sposób na zrobienie tego?
Nie użyłbym parametrów sesji. Dzięki
Zakładając, że jesteś w pobliżu jednej akcji i chcesz wywołać inną akcję z pewnymi parametrami.
Można użyć s: tag działania, aby wywołać kolejną akcję, ewentualnie z dodatkowych/innych parametrach niż oryginalnego działania:
<s:action name="myAction" ignoreContextParams="true" executeResult="true">
<s:param name="foo" value="bar"/>
</s:action>
Można również użyć standardowego rozpórki-xml typ wynik z parametrem:
<result name="success" type="redirect" >
<param name="location">foo.jsp?foo=${bar}</param>
<param name="parse">true</param>
<param name="encode">true</param>
</result>
Jeśli chcesz przekierować stronie klienta trzeba wysłać link z powrotem do klienta z odpowiednimi parametrami, i może korzystać z niektórych javascript, aby tam pojechać.
<s:url action="myAction" >
<s:param name="foo" value="bar"/>
</s:url>
<td>
<s:url id="url" action="Logging">
<s:param name="m_userNameInAction"><s:property value="m_userNameInForm"/></s:param>
</s:url>
<s:a href="%{url}">English</s:a>
</td>
przepraszam ?? powinienem odpowiedzieć? proszę, nie spamuj, szukając wyniku. – Giancarlo
Zastosowanie url tag w znacznikach rozpórki rdzeniowych, próbka jest podany poniżej:
<s:url var="idurl" action="EditEnterprise">
<s:param name="enterpriseId">
<s:property value="enterpriseId" />
</s:param>
</s:url>
faktycznie, zakres i ServletConfig Interceptor mogą być wykorzystane w Struts2, do automatycznego pop kontekstowego akcja parametry, (żądanie/sesja, itp.)
Właściwie masz zamiar przekazać jedną wartość parametru działania z jednej akcji do drugiej.
zawiera po prostu zmienną fasoli o tej samej nazwie. który parametr otrzymasz w akcji (akcja odbiorcy).
<action name="ForwardAction" class="...">
<result name="success" type="chain">ReceiverAction</result>
</action>
Parametr ForwardAction zostanie przekazany do funkcji ReceiverAction. możesz tego użyć. , ale uwzględnij tę samą nazwę fasoli w obu działaniach. ..
jeśli idziesz do odbioru identyfikatora w drodze receiveaction,
ten powinien być w obu sprawach,
private int userid;
public void setUserid(int id){
this.userid = userid;
}
public int getUserid(){
return userid;
}
miałem wiele kłopotów zastanawianie to uwagę: nie działa w Struts 2.1.8.1. Po uaktualnieniu do Struts 2.2.1 wszystko jest w porządku. Nigdzie nie znalazłem nuty. –
grefab