action-attribut des jsf h:form-tag überschreiben

ruutaiokwu

Top Contributor
hallo zusammen,

habe das problem dass mit in einer jsf/primefaces-anwendung beim h:form-tag immer das attribut "action" automatisch generiert wird. und das kann ich auch nicht überschreiben mit <h:form action="blablabla">... das attribut "id" in der form <h:form id="myid"> geht hingegen problemlos... (?)

ich muss action überschreiben, weil mir das auf das .xhtml-facelet zeigt, welches NICHT der einstiegspunkt der anwendung ist, sondern sich im WEB-INF-verzeichnis befindet... und wenn das so an den browser geht, geht gar nicht. (WEB-INF ist von aussen her NICHT erreichbar...)

irgendwie muss doch das gehen, ist doch total trivial...

andernfalls werde ich halt ein wrapper-tag für h:form schreiben, wo ein überschreiben des attributs "action" möglich ist...

was meinst ihr dazu?


danke & grüsse,
jan
 
weiss wirklich niemand, wie das geht? aus das ein soooo ausserordentlicher fall?

konkret habe ich das problem, dass die inneren tags (innerhalb von h:form) auf das h:form-tag angewisen sind; d.h. dass ich das h:form-tag nicht einfach in ein "normales" html-form-tag umschreiben kann - dann läuft nämlich gar nix.

grüsse,
jan
 
Also irgendwie scheinst du JSF nicht verstanden zu haben natürlich hängen die Komponenten vom <h:form> ab, <h:form> ist der übergeordnete Naming-Container) und deine Frage ist anscheind völlig nutzlos weil ich glaube keiner so wirklich versteht was du vor hast...

Aber ich glaube du meinst: Du hast eine index.jsp die der Einstiegpunkt der Anwendung sein soll dann:

index.jsp
Code:
<%
    response.sendRedirect("irgendwo/seite.jsf");
%>

oder
Code:
<html>
<head></head>
	<body>
		<jsp:forward page="irgendwo/seite.jsf" />
	</body>
</html>

Das nennt man einen non-faces-request...
 
hallo sdsdsdsds,

danke für deine antwort, werde das morgen in der firma testen.

mein konkretes problem ist folgendes:

ich verwende jfs nur für die präsentation, in kombination mit einem klassischen servlet. im servlet, welches der einstiegspunkt der anwendung ist, mache ich einen "request dispatch", eine art serverseitige weiterleitung. die weiterleitung erfolgt auf ein "facelet" (xhtml), welches sich bspw. unter WEB-INF/pres/jsf/site.xhtml befindet. also innerhalb des WEB-INF-verzeichnisses, und dort ist es nicht "öffentlich" (-> am browser) aufrufbar.

das jsf h:form-tag macht dann aber als action immer folgendes rein /WEB_APP_CONTEXT/WEB-INF/pres/jsf/site.xhtml

...und das ist wie gesagt nicht erreichbar, also wird nichts mit dem request darauf. und deshalb muss ich es überschreiben.


gruss, jan
 
die action ist ja erstmal nur für den string der navigationrule verantwortlich... und über eine navigationrule sollte es eig funktionieren. ich könnte mir vorstellen, dass es aus dem servlet nicht funktioniert, weil das ein none-faces-request ist. sicher bin ich mir da allerdings nicht, theoretisch sollte es auch aus einem sevlet funktionieren.
so ganz versteh ich allerings nicht, dass der einstiegspunkt nen servlet ist und du von einer form sprichst. oder befindet sich das form-tag schon in der xhtml unterhalb von web-inf? ist leider alles nicht so ganz deutlich was du hier beschrieben hast.
 
das setzt aber nicht vorraus, dass du ein servlet als einstiegspunkt vernwendest.. ich würd damit einfach mal ein wenig rumspielen, mit anderen einstiegspunkten, verschiedenen weiterleitungen usw.
 

Zurück
Oben