[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
--------------------------------------------------------------

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem