jsp:include mit dynamischem Dateinamen aus Struts2-Property

Status
Nicht offen für weitere Antworten.

mmm

Mitglied
Hallo,

der Titel enthält eigentlich bereits alles:

Ich habe eine Struts2-Action mit einer Property "filename".

In der JSP möchte ich nun über <jsp:include page="${filename}" /> die entsprechende Datei einbinden - leider klappt das nicht.

Ich habe es schon mit


Code:
<jsp:useBean class="frontend.action.StaticContentWrapper" id="wrapper"></jsp:useBean>
<jsp:include page='<%= wrapper.getFilename() %>'></jsp:include>

versucht, leider erfolglos - wrapper.getFilename() lieferte null zurück, obwohl <s:property value="filename" /> den korrekten Wert ausgab.

Mein nächster Versuch sah so aus:

Code:
<jsp:include page="<s:property value="filename" />" />

Leider wurde das mit
Code:
org.apache.jasper.JasperException: /pages/staticContentWrapper.jsp(22,47) equal symbol expected

quittiert...

Mir fällt keine weitere Möglichkeit mehr ein, deswegen wäre ich sehr dankbar, wenn mir jemand helfen könnte.
 

Sempah

Bekanntes Mitglied
Hallo zusammen,

ich habe ein ähnliches Problem: Und zwar würde ich gerne innerhalb einer JSP eine Struts2 Action Klasse einbinden. Bisher hatte ich in einer html einen Link auf meine Action Klasse:
<a href="dm/MeineAction.action">MeineAction</a>

Dies funktioniert auch wunderbar, jedoch würde ich nun gerne eine Seite basteln, in der mehrere Action-Klassen (JSP's) vereint werden.

-> <s:include value="dm/MeineAction.action" /> funktioniert leider nicht (The requested resource (/PROJEKTNAME/STRUTSNAMESPACE/MeineAction.action) is not available.
Die JSP, von der ich versuche zu includieren liegt auf der gleichen Ebene, wie die html (von der ich verlinkt habe).

Hiernochmal kurz meine Verzeichnisstruktur:
Code:
+ src
   + package
      - MeineAction.java
      - struts.xml
+ WebContent
   + pages
      - MeineAction.jsp
   + WEB-INF
   - index.jsp

Ich versuche also von der index.jsp auf MeineAction.jsp (mit Ausführung der Action-Klasse) zuzugreifen.
Wenn ich lediglich die JSP einbinde, wird die Action-Klasse nicht ausgeführt.
 
M

maki

Gast
Tiles funktioniert sehr gut mit struts, zumindest war das früher so.
 

Sempah

Bekanntes Mitglied
Okay nach anfänglichen Schwierigkeiten habe ich nun mehr oder weniger Struts2 + Tiles2 verbinden können.
Jedoch ist nach wie vor das Problem, das die Struts-Action-Class nicht ausgeführt wird.

Lediglich das JSP-Grundgerüst ohne Inhalt wird mir angezeigt. (erstelle in der Struts-ActionClass dynamisch eine Tabelle). Ich vermute, dass es an der Struts-Config hängt, die das mapping zur Action Class nicht hinbekommt.
 

Sempah

Bekanntes Mitglied
Eigentlich schon, ja ...

WebContent/index.jsp:
Java:
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<tiles:insertDefinition name="MeineSeite" />

WebContent/WEB-INF/tiles-def.xml:
[XML]<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="MeineSeite" template="/template/template.jsp">
<put-attribute name="header" value="/template/defaultHeader.jsp" />
<put-attribute name="menu" value="/template/defaultMenu.jsp" />
<put-attribute name="body" value="/pages/contentXy.jsp" />
<put-attribute name="footer" value="/template/defaultFooter.jsp" />
</definition>
</tiles-definitions>[/XML]

struts.xml:
[XML]<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />

<package name="dm" namespace="/dm" extends="struts-default">

<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>

<action name="index">
<result type="tiles">MeineSeite</result>
</action>

<action name="MeineSeite" class="de.package.MeineSeite">
<result>/pages/contentXy.jsp</result>
</action>

</package>
</struts>[/XML]

wobei das kursive "struts-only" ist.


web.xml Ausschnitt:
[XML] <context-param>
<param-name>
org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-defs.xml
</param-value>
</context-param>
<listener>
<listener-class>org.apache.tiles.web.startup.TilesListener
</listener-class>
</listener>[/XML]
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben