Ciao a tutti,
sono nuovo nel mondo di struts 2, ho necessità di impararlo in quanto dove lavoro lo usano spesso.
Ho iniziato solo oggi a provare qualcosina, una mini applicazione web . Ho configurato su linux netbeans 6.9 con server tomcat6 e ho scaricato il plugin ufficiale di struts 2 per netbeans dal sito ufficiale di netbeans.
Ho seguito svariate guide in giro e dopo un po di prove credo di avere più o meno capito come funziona anche se molte cose ancora non mi quadrano per niente.
Ero abituato in JSP a fare degli if e tra questi chiudere il tag %> e scrivere un valore che veniva poi visualizzato sulla pagina HTML.
ad esempio:
Ho notato che in struts 2 con il tag <s:if> funziona molto diversamente e ancora non riesco a capire quanto\come diversamentecodice:<%if(i==0) {%> ciao <%}else{%>bye <%}%>![]()
Per iniziare, con il mio progetto ho fatto una semplice jsp che tramite due url richiama una classe che a sua volta richiama delle variabili da dei file XML (o perlomeno mi pare di aver capito che funzioni così).
Adesso il mio problema sta nel fatto che queste variabili le stampo a video alla prima apertura della pagina.. e quindi non sono valorizzate e mi stampa il "name" delle <s:text> . ho provato svariate volte con degli s:if s:elseif e s:else a evadere la cosa ma proprio non capisco come funziona! in alcuni casi ha funzionato ma poi al riavvio del server mi stampava di nuovo il contenuto delle s:text (non il valore) oppure non stampava assolutamente nulla.
La mia jsp è questa:
la mia classe in java si trova in un package "core" e si chiama "content" :codice:<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <link rel="stylesheet" href="<s:url value="/jsp/css/style.css" />" type="text/css"> <title>WebSite</title> </head> <body> <div id="container"> <div id="menu"> <s:url id="url" action="content"> <s:param name="request_locale">home</s:param> </s:url> <s:a href="%{url}">Home Page</s:a> <s:url id="url" action="content"> <s:param name="request_locale">contatti</s:param> </s:url> <s:a href="%{url}">Contatti</s:a> </div> <div id="content"> <s:text name="content.message" /> </div> <div id="footer"> <s:text name="content.azione" /> </div> </div> </body> </html>
Ringrazio anticipatamente qualsiasi aiutocodice:package core; import com.opensymphony.xwork2.ActionSupport; public class content extends ActionSupport { public String execute() throws Exception { setMessage(getText(MESSAGE)); setAzione(getText(AZIONE)); return SUCCESS; } public static final String MESSAGE = "content.message"; public static final String AZIONE = "content.azione"; private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } private String azione; public String getAzione() { return azione; } public void setAzione(String azione) { this.azione = azione; } }
PS: spero di essermi spiegato bene...


Rispondi quotando