[EMAIL PROTECTED] wrote: > Dobrý den > > Nevím jak ve Struts řešit tento problém: > > Kliknutím na odkaz s parametrem <html:link action="linksAction?color=blue"> > něco </html:link> > Nasatvit bean na hodnotu toho parametru. > > Tedy asi nějak takhle: > 1. na JSP stránce definovat Bean > 2. Po kliknutí na odkaz se nasatví properyBean na hodnotu "blue" > 3. v Action nebo na další JSP stránce (kam mě přesměruje odkaz) přečíst > hodnotu propertyBean > > Děkuji za pomoc > Tomáš Jurman Znojmo
Zpracování se provádí na cílovém (odkazovaném) URL, ne na stránce s odkazem.
Takže nastavení property je třeba definovat pro form-bean
příslušný odkazované akci. Tj. ve struts-config.xml musí být:
<struts-config>
<form-beans>
<form-bean name="fazole" type="cz.ja.OdkazForm"></form-bean>
...
</form-beans>
...
<action-mappings>
<action path="/odkaz" type="cz.ja.OdkazAction" name="fazole"
validate="true" scope="request" input="strankasodkazem.jsp">
<forward name="chyby" path="strankasodkazem.jsp" />
<forward name="podano" path="dalsistranka.jsp" />
</action>
...
</action-mappings>
...
</struts-config>
S odkazem je to horší, já bych ho udělal pomocí JSTL takto:
<c:url var="url" value="/odkaz.do" scope="page" >
<c:param name="color" value="blue" />
</c:url>
<a href="${url}">něco</a>
nebo od Struts 1.3.8 se dá udělat
<html:link action="/odkaz">
<html:param name="color" value="blue" />
</html:link>
v dřívějších Struts sice může fungovat to, co jste zmiňoval,
ale není to podle dokumentace, viz.
http://struts.apache.org/1.3.8/struts-taglib/tlddoc/html/link.html
http://struts.apache.org/1.2.9/userGuide/struts-html.html#link
Samotný form-bean je pak třída vypadající zhruba takhle:
package cz.ja;
import org.apache.struts.action.*;
public class OdkazForm extends ActionForm implements Serializable {
private String color;
public void setColor(String s) { color = s; }
public String getColor() { return color; }
...
}
a v odkazované akci se k hodnotě dostanete takto:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
String barva = ((OdkazForm)form).getColor();
}
a v navazující JSP stránce takto:
<c:out value="${fazole.color}" />
protože form-bean se uloží pod svým názvem ze struts-config.xml
Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
