2017-01-06 3 views
0

Einstellwert in Servlet JSP und es in das Abrufen unter Verwendung von JSP RequestWert Mismatch während Attribut von Passieren Servlet

In test1Servlet:

request.setAttribute ("Alpha", alpha);

RequestDispatcher rd = request.getRequestDispatcher ("Test.jsp");

rd.forward (Anfrage, Antwort);

In test.jsp: Auf Schaltfläche anklickt mit Anforderungsattribut zu einem anderen Servlet-Ajax-Aufruf tun Werte

$(document).ready(function(){ 

    $(".button1").click(function(){ 
      $.ajax({ 

    type: "POST", 

    url: "<%=request.getContextPath()%>/test2Servlet", 

data: {"alpha":<%=request.getAttribute("alpha")%>,"ins":10}, 

dataType:"text", 

In diesem Fall, wenn ich Alpha-Wert als 0017 in test1Servlet gesetzt, sind immer 0015 in jsp.

Wie wird dieser Wert geändert?

Bitte helfen Sie mir, dies zu lösen.

+1

Es ist nicht möglich. Sie müssen es irgendwo dazwischen ändern. Können Sie den vollständigen Code für Servlet und JSP posten? – GurV

+0

Veröffentlichen Sie eine [mcve] zusammen mit einer ** genauen ** Beschreibung der Eingabe und der erwarteten und unerwarteten Ausgabe. Sie haben nämlich vergessen zu zeigen, wie Sie diese Variablen deklarieren und lesen. Die von Ihnen verwendeten Werte haben eine Oktalschreibweise anstelle einer Dezimalschreibweise, daher sind die Chancen groß, dass Sie dort Fehler gemacht haben. – BalusC

+0

War meine Antwort hilfreich? Dann können Sie es akzeptieren und upvote, indem Sie auf das Häkchen und den Pfeil nach oben auf der linken Seite klicken. Wenn Sie immer noch Probleme haben, geben Sie weitere Informationen an. –

Antwort

1

Es ist kein Fehler dort. Sie erhalten den richtigen Wert.

  • OCTAL:
    In vieler Anzahl von Null voran Sprachen als octals oder hexadezimal interpretiert 017 = 15
    (weil die 1 bis 8 eine der 7 bewertet, wie es ist also 1 × 8 + 7. = 15).
  • hexadezimal: 0x17 = 1 × 16 + 7 = 23

Probieren Sie es aus:

<script> 
   var x = 0017; 
    var y = 0x17; 
   alert("x:" + x); 
    alert("y:" + y); 
</script> 

Da die Post Parameter in Strings konvertiert werden, können Sie die Werte in Anführungszeichen gesetzt. Oder vermeiden Sie führende Nullen in Zahlen.

+0

Ja, Sie haben Recht, sind sich aber nicht sicher, wo es sich auf oktal ändert, da ich die Werte aus der Sitzung abrufe und sie als String abspeichere und denselben Wert in request.setAttribute (alpha) verwende. –

+0

Wert von der Sitzung erhalten unter Verwendung von unter Code und ich kann nicht ignorieren HttpSession session = request.getSession(); Zeichenfolge alpha = request.getParameter ("alpha"); session.setAttribute ("Alpha", Alpha); –

+0

Wie setzt man 'alpha' in test1Servlet? Welcher Typ ist es? Zeige die Definition. –

Verwandte Themen