5. Februar 2012  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!
Forum

clear_linkDummyForm
 Marillio, 26.02.2010 17:30:10

Hallo,

ich benutze tomahawk (1.1.9), leider funktionieren die commandLinks nicht außerhalb von einem f:form. Ich habe Problem jetzt ausführlich untersucht und komme zu dem Ergebniss das der Parameter "linkDummyForm:_link_hidden_" fehlt und somit da kein Paramter da ist auchnicht die JS Funktion: clear_linkDummyForm().

Ich habe das Problem jetzt folgender maßen gelöst:

FacesContext facesContext = FacesContext.getCurrentInstance();
DummyFormUtils.addDummyFormParameter(facesContext, "linkDummyForm:link_hidden_");
DummyFormUtils.setWriteDummyForm(facesContext, false);

Gibt es dafür villeicht eine sauberere Methode?
Wenn ich z.B. in den commandLink einen Param einfüge:
<f:param name="test" value="Text" />

Wird dieser auchnicht gerendert sondern ich muss ihn erst mit:
DummyFormUtils.addDummyFormParameter(facesContext, "linkDummyForm:test");

hinzufügen. Meine Lösung muss übrigends immer noch dem commandLink stehen, da die Parameter sonnst einfach wider zurück gesetzt werden und ein leeres Form gerendert:

<form id="linkDummyForm" name="linkDummyForm" style="display:inline" method="post" action="/HSOWL2b/login_user_export.faces">
<input type="hidden" name="jsf_sequence" value="45" />

</form>

Außerdem funktionier das ganze garnicht (nochnichtmal das Form wird gerendert) wenn über ein forward auf die Seite geleitet wurde (macht meine index.jsp),

Ich weiß das ich ja schon eine Lösung habe, aber die funktioniert ja nicht immer und ist auch sehr unsauber, woran könnte es liegen das es nicht richtig funktioniert, die Filter sind übringends gesetzt.
Bin für jeden Tipp dankbar.

MfG
Sascha


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.


Re: clear_linkDummyForm
 hansi, 27.02.2010 15:57:18

Die Aufgabenstellung ist mir unverständlich.

Was soll geschehen? Was ist das Ziel der 'Übung'?

Grüsse hansi


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 Marillio, 27.02.2010 21:38:47

Ziel der "Übung" ist es commandLinks so einzusetzen das diese funktionieren, so wie sie sollen. Irgendwo ist offensichtlich ein Problem und die Parameter werden nicht gesetzt oder danach wieder automatisch entfernt. Ich frage mich waran das liegen könne, zum teil wird das linkDummyForm garnicht generiert, auch da frage ich mich woran das liegen könnte.

Gruß
Marillio


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 hansi, 28.02.2010 14:21:14

> linkDummyForm garnicht generiert
Sei so nett und poste die komplette Seite in der der command link nicht gerendert wrid.
Wenn es mehrere gibt um welchen handelt es sich?
Das leben hauchen wir danach ein.

hansi


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 Marillio, 28.02.2010 15:18:30

na klar:

hier die index.jsp (reines jsp):
<jsp:forward page='/start.faces' />

hier die start.jsp (jsf/jsp):
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<body>
   <f:view>
      <t:commandLink action="outcome" value="Testlink"></t:commandLink><br>
   </f:view>
</body>
</html>

Unter </html> bzw. unter t:commandLink folgender "fix":
<%
FacesContext facesContext = FacesContext.getCurrentInstance();
DummyFormUtils.addDummyFormParameter(facesContext, "linkDummyForm:link_hidden_");
DummyFormUtils.setWriteDummyForm(facesContext, false);
%>

ruft man nun index.jsp/index.faces auf wird alles generiert außer das linkDummyForm und die Parameter sowie das javascript also nur der "link". Ruft man nun start.faces direkt auf wird folgender Code am ende der Zeile generiert:

<form id="linkDummyForm" name="linkDummyForm" style="display:inline" method="post" action="/HSOWL2b/login_user_export.faces">
<input type="hidden" name="jsf_sequence" value="45" />

</form>

Wenn mein "fix" unter dem t:commandLink steht wird alles korekt (auf start.faces nicht auf index.faces) generiert. Wenn ich beim commandLink einen Parameter übergeben will, muss ich diesen mit in den "fix" aufnehmen.

Gruß
Marillio


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 hansi, 01.03.2010 12:26:53


<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <f:view>
      <body> 
         <h:form id="dieNurCommandLinkForm">
            <t:commandLink action="wasSollGeschen" value="Testlink" id="ersterCommandLink" forceId="true">
                <h:outputText value="DerTextDerImGezeigtWird"/>
            </t:commandLink>
            <br> 
        <h:form/>
    </body>
  </f:view>
</html>


____________

Moien,

<f:view>
Das view tag gibt es nur ein mal in einer jsf.
Es ist der Top level container von dem was gezeigt werden soll.
Mit ihm kann auch die Sprache der Ausgabe geschaltet werden.
<f:view locale="de"><f:view>

In JSF gibt es kein "plaint link" um einen link gebraucht es ein Frorm, und es fasst so zusamen was zusammen gehört. Es ist zwingend für interaktive tags.
Schachteln geht nicht.
http://www.developersbook.com/jsf/jsf-tags-reference/html/form.php

Das forceId="true" kann weggelassen werden ist jedoch hilfreich wenn zB via JavaScript und/oder CSS zugegriffen werden soll.
(Wenn tomahawk dann auch nutzen ansonsten hätte es auch <h:commandLink /> gereicht.
http://wiki.apache.org/myfaces/forceId

Wenn die form umfangreicher wird ist ein h:messages hilfreich für die Fehlerjagt.

hilfreich: http://www.developersbook.com/jsf/jsf-tutorials/jsf-tutorials.php

grüsse hansi


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 hansi, 01.03.2010 12:30:56

Irgendwie ist das '/' verrutscht <h:form/> besser </h:form>

Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 Marillio, 01.03.2010 14:06:11

ich nutze tomahawk weil hier der commandLink auch ohne form funktioniert (zumindest funktionieren soll), wenn kein form da ist wird automatisch ein linkDummyForm erstellt, das mit der foreId ist ein guter tipp.

Gruß
Marillio


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.

Re: clear_linkDummyForm
 hansi, 02.03.2010 18:55:28

Nabend,

> ...commandLink auch ohne form funktioniert ...
> ...automatisch ein linkDummyForm erstellt...

wo hast Du das denn her? Ich kann nichts darüber finden. Habe ich was übersehen?

http://myfaces.apache.org/tomahawk-project/tomahawk/tlddoc/t/commandLink.html
http://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc/t_commandLink.html

Hat Dich da jemand gelinkt? .-)

Mit form klappt es besser oder?

Grüsse hansi


Zum Antworten auf einen Beitrag müssen Sie registriert und angemeldet sein.


Legende: Anonymer User     registrierter User     sehr aktiver User

<< zurück 


Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.