Ich möchte dieselbe JSP für mehrere Struts-Aktionen rendern. Ich habe Probleme, weil beim Rendern der JSP der Name des Beans abhängig davon, welche Aktion aufgerufen wurde, unterschiedlich ist. So kann, nenne ich nicht so etwas wie:Effektives Teilen von JSPs zwischen verschiedenen Struts-Action-Klassen
<c:out value="${myBean.myProperty}" />
weil die Bohne ist nicht unbedingt MyBean genannt.
Zur Zeit habe ich mich darum gekümmert, indem ich alle gängigen Objekte, die ich in der JSP benötige, in die HttpSession lege. Zum Beispiel:
public class SampleAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception
{
String string = "TEST";
HttpSession session = request.getSession();
session.setAttribute("sampleString", string);
return mapping.findForward("sampleAction");
}
}
Dann wird in der JSP, kann ich einfach Referenz „sampleString“ und es wird nicht auf der Rendering-Aktion je ändern.
Natürlich sind die Objekte, die ich verwende, viel größer als eine Zeichenfolge, und ich möchte keine Objekte in die Sitzung einfügen, wenn ich nicht muss. Gibt es eine Möglichkeit, ein Objekt einfach in den Seitenkontext oder etwas und nicht in die Sitzung einzufügen, um es zwischen verschiedenen JSPs zu teilen?
Ich komme aus der Rails-Welt, also bin ich Struts sehr neu und bin ein wenig verloren. Ich muss eine bestehende Anwendung in Struts erweitern. Das Programm verwendet tatsächlich BeanAction, um ein ActionForm mit einer Action zu kombinieren, daher ist das obige Beispiel nicht genau so, wie mein Code aussieht.
Danke für jede Hilfe, die meine Verwirrung aufräumt!