struts2 result="input"

Status
Nicht offen für weitere Antworten.

JRookie

Aktives Mitglied
Tach zusammen,
ich habe eine action, die als result einen success Ausgang und einen "input" Ausgang hat, der als Ergebnis eines validates() auf die Eingabemaske zurückführen soll:

<action name="compute" class="pack.fuzeicomp">
<result name="SUCCESS">/jsp/zeig.jsp</result>
<result name="input">/jsp/fuzei_entry.jsp</result>
</action>

Klappt, sofern ich als "input" Ausgang eine andere jsp reinhänge. Mein Problem:
Wenn ich die Eingabemaske reinhänge, wird mir nur noch der prompt und das erste Eingabefeld textfield "func" gezeigt
Java:
<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page language="java" import="pack.functypes" %>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
		<link rel="stylesheet" type="text/css" href="mystyle.css" / >
		
		<title>Eingabe der Funktion</title>
	</head>


	<body class="wheat">
		    <h3>Der Name der Funktion</h3> 
			<hr> 
	        <s:form action="compute">
		    <s:textfield name="func" 
		       label="Enter your function here !" size="25"/>
 <div id="e1">
            	    <s:radio  name="functype" theme="css_xhtml" cssClass="resources" cssStyle="Color:red"
               		label="Wähle einen Funktionstyp !!" labelposition="top" list="functypes" />  
</div>
  

 <div id="para"><s:textfield name="a" label="Parameter  a	" theme="xhtml"  size="6"  /><br>
		    <s:textfield name="b" label="Parameter  b	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="c" label="Parameter  c	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h1" label="Exponent h1	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h2" label="Exponent h2	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h3" label="Exponent h3	" theme="xhtml"  size="6" /><br>
</div>
<br>
           <s:submit theme="simple" value="Schick doch mal ab !" />
	</s:form>

Kann das sein, dass das an dem theme Wechsel liegt ??
Ich habe in der validation Routine folgendes stehen:
Java:
		catch (NumberFormatException e){
			System.out.println ("Number Format exception in fuzeicomp " + geta() );
//			addFieldError( "a", "Keine gültige Zahl\n"+e.toString()+"\n");
			addFieldError( "a", "Keine gültige Zahl");
			System.out.println ("Komm ich soweit ??"  );
		
		}
Die printlines seh ich beim tomcat.
Weiss jemand was ??
Ich weiss nicht mal, wonach ich suchen soll, muss man da einen Umweg über ein forward machen ??
Viele Grüße
JRookie
 

JRookie

Aktives Mitglied
Dann will ich mal antworten:
Das die anderen Textfelder verschwanden, lag wohl daran, dasss ich sie private und static deklariert hatte, anstatt nur private.
Ok, ich mach jetzt mein "input" result und sehe die Felder mit ihren alten Werten und einer Fehlermeldung. Dafür ist meine radio Iteration mitsamt des submit Knopfes verschwunden.

Versteh ich sogar irgendwie. Ich hatte eine action deklariert, die die Ausführung einer Klasse übernimmt, die die Liste erst erzeugt:
fuzei.xml:
Java:
				<action name="Name" class="pack.functypes">
           				<result name="SUCCESS">/jsp/fuzei_entry.jsp</result>
				</action>	

				<action name="compute" class="pack.fuzeicomp">
					<result name="SUCCESS">/jsp/zeig.jsp</result>
					<result name="input" >/jsp/fuzei_entry.jsp</result>
    			</action>
functypes.java:
Java:
package pack;
// import java.awt.List;
import static java.lang.Math.exp;
import static java.lang.Math.pow;

import java.util.*;
import com.opensymphony.xwork2.ActionSupport;

public class functypes extends ActionSupport {

    public String execute() throws Exception {
    	   functypes = new ArrayList();
    	   functypes.add("Apple");
    	   functypes.add("Pear");
    	   functypes.add("Orange");
    	   functypes.add("Pine Apple");

     	System.out.println ("Functypes.java  Funktionstype " + functypes);	
    	return "SUCCESS";
    }

	private   List functypes;
 
	public  List getfunctypes() {
		return functypes;
	}

}
Wenn ich fuzei.xml ändere:
Java:
				<action name="Name" class="pack.functypes">
           				<result name="SUCCESS">/jsp/fuzei_entry.jsp</result>
				</action>	

				<action name="compute" class="pack.fuzeicomp">
					<result name="SUCCESS">/jsp/zeig.jsp</result>
					<result name="input" type="redirect" >/jsp/Name.action</result>
    			</action>
und ein redirect auf die Name.action mache, wird die Liste wieder erzeugt, dafür sind alle eingegebenen Werte weg.
Weiss jemand , wie es geht ?
Viele Grüße
JRookie
 

JRookie

Aktives Mitglied
Ja, ich jetzt ..
ich hänge einfach die Erzeugung meiner radio Liste in den validate() Zweig.Also
Java:
	 	   functypes = new ArrayList(); 
		   functypes.add("Apple");
		   functypes.add("Pear");
		   functypes.add("Orange");
		   functypes.add("Pine Apple");
dann geht's. Kommt mir zwar etwas komisch vor ...
Weiss den jemand, wie ich die Ausgabe des addFieldError im jsp steuere ?
Mein fuzei_entry.jsp sieht so aus:
Java:
<%@ page contentType="text/html; charset=ISO-8859-1" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
		<link rel="stylesheet" type="text/css" href="mystyle.css" / >
		
		<title>Eingabe der Funktion</title>
	</head>


	<body class="wheat">
		    <h3>Der Name der Funktion</h3> 
			<hr> 
	        <s:form action="compute" >
	        	<s:textfield name="func" 
		        	label="Enter your function here !" size="25"/><br>

 <div id="para">
            <s:textfield name="a" label="Parameter  a	" theme="xhtml"  size="6"  /><br>
		    <s:textfield name="b" label="Parameter  b	" theme="xhtml"  size="6"  /><br>
		    <s:textfield name="c" label="Parameter  c	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h1" label="Exponent h1	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h2" label="Exponent h2	" theme="xhtml"  size="6" /><br>
		    <s:textfield name="h3" label="Exponent h3	" theme="xhtml"  size="6" /><br>
</div>

<div id="e1">
            <s:radio  name="functype" theme="css_xhtml" cssClass="resources" cssStyle="Color:red"
               label="Wähle einen Funktionstyp !!" labelposition="top" list="functypes" />  
</div>


<br>
           <s:submit theme="simple" value="Schick doch mal ab !" />
	</s:form>
Wenn die Fehlermeldung kommt, dann VOR dem label:

Keine gültige Zahl in validate Parameter b : <textfeld>

Schön aussehen tut das nicht !
Viele Grüße
JRookie
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Struts Struts2 / Freemarker / Maven2: Markieren von Deployment-Stufen in der View-Schicht Web Tier 4
M STRUTS2 - Array als Parameter übergeben Web Tier 2
D Tomcat/Struts2 Benutzer bestimmt Name der URL Web Tier 2
B (JSP)+(Struts2)+(Servlet) Konfiguration web.xml Web Tier 2
O JSP struts2 tag: Problem mit Dezimalzahlen Web Tier 2
P Struts Struts2 if tag Problem mit getText() Web Tier 3
O struts2: iterator status in name-Feld benutzen Web Tier 7
D Struts2 Combobox ohne Eingabefeld Web Tier 2
O struts2: Zeilenumbruch in textarea verwenden Web Tier 3
7 struts2-jquery-Plugin Einbindung Web Tier 11
7 Struts2 in webbasierter Anwendung Web Tier 39
O struts2 - Probleme mit parametrisierten URLs Web Tier 5
O Struts2 - vollständige Beschreibung der Tags gesucht Web Tier 6
P Struts2 - Mehrere Methoden/Actions in einer Klasse + Validation Web Tier 2
O [Struts2] Vorbelegung von Feldern Web Tier 6
J struts2: vom value stack zum servlet Web Tier 14
O Escapen oder nicht Escapen, das ist hier die Frage :) (Struts2) Web Tier 2
O Struts2: Probleme mit Links aus Packages raus Web Tier 9
S Struts2 zeilenumbruchporblem bei textareas Web Tier 4
K [Struts2] autom. Action-Erkennung Web Tier 2
J JSF Array als Input-Value Web Tier 8
H [WICKET] clean form input trotz AjaxSubmitLink Web Tier 6
LadyMilka java.lang.NumberFormatException: For input string: ... Web Tier 5
H <form:input > javascript Web Tier 2
M [JSF] Input-highlighting bei fehlgeschlagener Validierung Web Tier 4
M Properties der JSP nach input-result leer (Struts 2) Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben