Hallo,
hab ein Problem mit der Umstellung von stateful zu stateless, vielleicht kann hier jemand weiterhelfen:
Ich hab folgende BSP-Applikation(Beispiel zum Zustandsmodell aus dem Buch WebEntwicklung in ABAP mit dem SAP WAS):
in der Seite default.htm:
Layout:
<%@page language="abap"%>
<html>
<head>
<link rel="stylesheet" href="../../sap/public/bc/bsp/styles/sapbsp.css">
<title> Start </title>
</head>
<body class="bspBody1">
<form method="GET">
<h2>Stateful/Stateless DEMO</h2>
<h3>Inhalt von Counter: <%= application->m_counter %></h3>
Stateful<input type="checkbox" name="stateful" value="X"
<% IF runtime->keep_context = 1. %> checked <% ENDIF. %>><br><br>
<input type="submit" name="onInputProcessing(inc)" value="erhöhen">
<input type="submit" name="onInputProcessing(dec)" value="verringern">
<input type="submit" name="onInputProcessing(res)" value="zurücksetzen">
</form>
</body>
</html>
Im OnInputProcessing steht folgendes:
DATA check TYPE char1.
check = request->get_form_field( 'stateful' ).
IF check EQ 'X'.
runtime->keep_context = 1.
ELSE.
IF runtime->keep_context = 1.
application->reset( ).
ENDIF.
runtime->keep_context = 0.
ENDIF.
CASE event_id.
WHEN 'dec'. application->dec_counter( ).
WHEN 'inc'. application->inc_counter( ).
WHEN 'res'. application->reset( ).
ENDCASE.
Als Applikationsklasse wird die Klasse Z_CL_STATE_DEMO verwendet, welches das Attribut m_counter in den Methoden dec_counter und inc_counter jeweils um 1 hoch- oder herunterzählt.
Wenn ich die Seite im Browser teste, zählt der Zähler immer nur von 0 bis 1 bzw. von 0 bis -1, egal ob ich stateful oder stateless auswähle.
Ein Blick auf die Methoden der Klasse mit dem Debugger zeigt, dass die m_counter zu Beginn der Methode immer 0 ist.
Frage: warum wird beim stateful nicht hochgezählt?
Edit: Hat sich erledigt:
Der Fehler tritt beim IE auf; bei FireFox läuft alles wie es soll.