Struts2 e Convention Plugin: redirect ad un url esterno da una action
Un esempio molto banale su come utilizzare Struts2 e il Convention plugin : una redirect ad un url esterno da una Action.
Uno scenario d’utilizzo può essere ad esempio quello di redirigere la navigazione, da un portale di ecommerce, verso il sito di una banca per effettuare un pagamento.
Queste sono le dipendenze per chi utilizza Maven, relativamente all’ultima versione di Struts2:
<!-- Struts 2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.3.14.3</version> </dependency> <!-- Tiles Plugin --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-tiles-plugin</artifactId> <version>2.3.14.3</version> </dependency> <!-- Convention Plugin --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>2.3.14.3</version> </dependency>
La definizione dell’action e del redirect è questa:
@Action(value="pagamento-xpay", results={ @Result(name = "success", location="${payUrl}", type="redirect") })
Ovviamente deve essere gestita la proprietà payUrl. Ecco una piccola classe di esempio:
package it.nicola.struts2.actions.pagamento; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import com.opensymphony.xwork2.ActionSupport; @ParentPackage("nicola_core") @Namespace("/") public class Pagamento extends ActionSupport { private String payUrl; @Action(value="pagamento-xpay", results={ @Result(name = "success", location="${payUrl}", type="redirect") }) public String execute() throws Exception { payUrl = "http://www.google.it"; return "success"; } public String getPayUrl() { return payUrl; } public void setPayUrl(String payUrl) { this.payUrl = payUrl; } }
Link utili:
Commenti recenti