mehrere submit-buttons in einer jsp

Status
Nicht offen für weitere Antworten.

baer1208

Aktives Mitglied
hy @ all!

ich hab in meiner jsp mehrere submit-buttons! jedesmal soll ne andere action kommen...wie geht das...hab schon folgendes probiert:

Code:
<html:form action="/ausgabeAction.do" method="forward" >
      <html:submit styleClass="cssMenu" value="Ausgabe" property="ausgB"/>

    </html:form>

    <html:form action="/produktivitaetsAction.do" method="forward" >
      <html:submit styleClass="cssSubmenu" value="Produktivitätsausgabe" property="prodAusgB"/>

    </html:form>

    <html:form action="/zusaetzlicheAction.do" method="forward" >
      <html:submit styleClass="cssSubmenu" value="Zusätzliche Ausgaben" property="zAusgB"/>

    </html:form>

    <html:form action="/logoutAction.do" method="forward" >
      <html:submit styleClass="cssMenu" value="Logout" property="logoutB"/>
    </html:form>

die action:
Code:
public ActionForward execute(ActionMapping actionMapping,
                                 ActionForm actionForm,
                                 HttpServletRequest servletRequest,
                                 HttpServletResponse servletResponse) {
        return actionMapping.findForward("output");
    }

nur leider funktioniert das nicht!

hier ist es relativ einfach (dachte ich mir) da keine formulardaten ausgelesen werden müssen...also nur weiterleitung!

bitte um hilfe!

ciao baer
 

baer1208

Aktives Mitglied
es sollten die buttons angezeigt werden! doch werden sie nicht! da die jsp in eine andere "included" wird, wird auch der ganze code nach dem include dieser jsp nicht angezeigt!

die exception sagt was von ner form-bean null...
es ist dafür keine form-bean definiert! weil es ja auch unnötig ist, da es einfach ein forward sein soll...also ohne form-bean!
ist zu verstehen wie eine navigation!

genauer genug? ;-)

ciao baer
 

bambi

Bekanntes Mitglied
Ich denke nicht, dass es irgendwie an Deinem Forward liegt. Selbst dann muessten die Buttons ja wenigstens angezeigt
werden. Ich kann mir hoechstens vorstellen, dass es was mit der JSP zu tun hat, die Deine (ich sach' mal) Button-JSP
einbindet. Vielleicht solltest Du da mal reinsehen... Falls es nicht klappt, dann kannst Du ja noch mal Deine Haupt-JSP posten.

Mit der Exception kann ich jetzt leider auch nichts anfangen - sorry...
 

baer1208

Aktives Mitglied
ich denke nicht,dass es ein hindernis ist, nur wenn die actionForm fehlt! es sollte ein ganz normales forward werden...steh zur zeit anscheinend total auf d leitung!

hier d code der haupt-jsp:
Code:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-nested.tld" prefix="nested" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

<html:html>
<table width="98%" border="0">
  <tr>
    <td width="14%" height="74">
      
      <jsp:include page="logo.jsp" flush="true" />
    </td>
    <td width="77%">
      
    </td>
    <td width="9%">
      
      <jsp:include page="logo_vmi.jsp" flush="true" />
    </td>
  </tr>
  <tr>
    <td height="428">
      
      <jsp:include page="navigation_manager.jsp" flush="true" />
    </td>
    <td colspan="2">

      <head>
        <title>
          index
        </title>
      </head>
        <jsp:useBean id="bean0" scope="session" class="manager.LoginBean" />
        <jsp:setProperty name="bean0" property="*" />
        <body>
        

Welcome
          <bean:write name = "loginActionForm" property="s_userid"/>
          <bean:write name = "loginActionForm" property="s_password"/>
        !</p>
        </body>

    </td>
  </tr>
  <tr>
    <td height="73" colspan="3">
      
      <jsp:include page="footer.jsp" flush="true" />
    </td>
  </tr>
</table>
</html:html>

wenn ich den teil mit der navigation auskommentiere, dann sieht man alles...also content u footer, wenn nicht streikt es ab der navigation!
in der navigation.jsp (button-jsp) sehe ich keinen fehler! das sind einfach 4 action forms denen jedem button eine neue action-klasse zugewiesen wird, eben damit, dass sie auf eine andere seite verweisen!

die action sagt immer
Code:
...
return actionMappings.findForward("ziel");

any idea?
 

daLenz

Aktives Mitglied
hei bear,

in deiner struts-config musst du eine form-bean für die button-jsp definieren! (desshalb ja auch die exception)

ich würde es so versuchen:

--> jsp
Code:
...
<html:form action="/eineAction.do" method="forward" > 

      <html:submit styleClass="cssMenu" value="Ausgabe" property="allegleich"/>
 

      <html:submit styleClass="cssSubmenu" value="Produktivitätsausgabe" property="allegleich"/>
 

      <html:submit styleClass="cssSubmenu" value="Zusätzliche Ausgaben" property="allegleich"/>
 
  
      <html:submit styleClass="cssMenu" value="Logout" property="allegleich"/> 
    
</html:form> 
...


-->struts-config.xml
Code:
...
<form-bean name="Form" 	type="org.apache.struts.validator.DynaValidatorForm">
		
    <form-property name="allegleich" 	        type="java.lang.String"/>
				      			      	       
</form-bean>
...


nun musst du in der action nur noch auslesen (allegleich) und je nach value richtig weiterleiten...

vielleicht hilft dir dies ja weiter...

p.s so wäre auch die anwendungslogik nicht mehr in dr jsp sondern in der action...

greetz
 

baer1208

Aktives Mitglied
danke!

hab meine struts-config erweitert um die form-bean, doch versteh ich nicht ganz wie ich in der action (NavigationAction) den wert von "allegleich" abfragen soll...

also ich kenn das mit z.B. e.getSource() - ist das dasselbe prinzip?? wie wende ich das aber hier an?? da d property all the same is weiß ers ja nicht wohin...

könntest das mir etwas näher erklärn?? wär super!

tia
ciao baer
 

daLenz

Aktives Mitglied
du kannst das in der action etwa so machen:

Code:
String whichButton = (String) PropertyUtils.getSimpleProperty(form, "allegleich");

if(whichButton.equals("hier der value des gewünschten buttons")){
ein forward
}else if(whichButton.equals...{
ein anderer forward
} etc.

// hier evtl. noch ein forward auf eine fehlerseite...denn bis hier sollte es nicht gehen

und in der struts-config in der action alle forwards noch angeben...

greetz
 

baer1208

Aktives Mitglied
thx for your help!

ich habs gleich probiert und einen Fehler in folgender zeile bekommen:
Code:
String s_value = (String) PropertyUtils.getSimpleProperty(NavigationActionForm, "all_the_same");
die NavigationActionForm ist folgendermaßen in struts-config.xml deklariert:
Code:
<form-bean name="NavigationActionForm" type="org.apache.struts.validator.DynaValidatorForm">
      <form-property name="all_the_same" type="java.lang.String" />
    </form-bean>
----------
    <action name="navigationActionForm" parameter="method" path="/navigationAction" scope="request" type="manager.NavigationAction" validate="false">
      <forward name="output" path="/WEB-INF/pages/output.jsp" redirect="true" />
      <forward name="output_extra" path="/WEB-INF/pages/output_extra.jsp" />
      <forward name="login" path="/login.jsp" />
    </action>
der code in der NavigationActionForm :
Code:
package manager;

import org.apache.struts.validator.DynaValidatorForm;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;

public class NavigationActionForm extends DynaValidatorForm {
    public ActionErrors validate(ActionMapping actionMapping,
                                 HttpServletRequest httpServletRequest) {
        return null;
    }

    public void reset(ActionMapping actionMapping,
                      HttpServletRequest servletRequest) {
    }
}
der error:
Code:
"NavigationAction.java": cannot find symbol; symbol  : variable NavigationActionForm, location: class manager.NavigationAction at line 17, column 67
ich denke,dass der fehler in der NavigationActionForm liegt...
ich hatte zuerst eine gleichnamige form gehabt...die hatte ich gelöscht, und einfach "actionDesigner" ne form hinzugefügt und so benannt...der code von der NavigationActionForm bzw. die bean selbst gibts jez komischerweise gar nicht mehr...

es ist nicht machbar von einer jsp ne actionForm zu machen, wenn keine input-felder vorhanden sind, nur buttons!

ciao baer
 

daLenz

Aktives Mitglied
hast du schon einmal mit dynavalidatorform gearbeitet? mit dieser form musst du keine "eigene" schreiben! diese wird dir vom struts-framework erstellt!

desshalb benötigst du deine klasse NavigationActionForm nicht!

du rufst deine Action-Form mittels ....getSimpleProperty(NavigationActionForm.... auf, ist die auch in der execute-Methode so definiert? ist sie dort nicht als ActionForm form definiert? liegt wahrscheinlich an dem...


greetz!
 

baer1208

Aktives Mitglied
hab noch nie damit gearbeitet!
ich probiers aus und dann geb ich wieder bescheid!!

danke nochmal für die hilfe!! echt super!
fettes danke!

ciao baer
 

baer1208

Aktives Mitglied
danke für die vielen vorschläge! habs zur zeit nur "schirch" gemacht...also in d jsp...zeitmangel! aber die anderen wege werd ich noch ausprobiern wenn zeit dazu ist!

danke für die große teilnahme an meinem problem!

ciao baer
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
clemson HTML Taglib - mehrere Submit-Buttons & Internationalisie Allgemeines EE 4
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
N JAAS login() mehrere Parameter an LoginModul übergeben Allgemeines EE 2
T Mehrere gleiche Jars im Classpath Allgemeines EE 7
A JMS: Mehrere Durable Subscriber dynamisch zur Laufzeit erzeugen - setClientID() Allgemeines EE 2
MQue ein Rechner - mehrere BrowserFenster Allgemeines EE 3
K mehrere Datenbanken mit JBoss 4.2 und EJB3 Allgemeines EE 3
A Mehrere User gleichzeigig, wie mach ich das? Allgemeines EE 14
A Annotation "ID: Primary Key über mehrere Spalten möglic Allgemeines EE 3
M Mehrere Webanwendungen über einen Webserver? Allgemeines EE 2
B JSF - Mehrere Message-Bundles verwenden Allgemeines EE 17
E bei struts inhalte über mehrere seite verteilen Allgemeines EE 6
S mehrere Message Resources in Struts ansprechen Allgemeines EE 7
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
M MVC in J2EE: mehrere JSPs über ein Servlet kontrollieren Allgemeines EE 7
clemson mehrere Mail Attachments - JSP Struts Allgemeines EE 7
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
W Mehrere Applikationenen mit einer Anmeldung möglich? Allgemeines EE 11
MQue RequestDispatcher nach Submit Allgemeines EE 2
E welcher submit-Button wurde gedrückt? Allgemeines EE 11
J struts: Bild als submit-button Allgemeines EE 2
M image für submit button Allgemeines EE 3
feinperligekohlensaeure JSF Keine Tabelle / Buttons werden unter Windows angezeigt + Apple schon Allgemeines EE 9
M JSP werte aus dynamischen Buttons auslesen Allgemeines EE 3
M Zwei Buttons in einem Servlet Allgemeines EE 2
D Java Servlet mit Radio Buttons Allgemeines EE 2
S JSF datatable mit buttons Werte übergeben Allgemeines EE 5
A Textfelder + Buttons sperren Allgemeines EE 6
N JSF-Checkboxen in Tabelle mit Buttons dahinter Allgemeines EE 4
M JSF Buttons Allgemeines EE 3
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10

Ähnliche Java Themen

Neue Themen


Oben