Jak przekazać zmienną z serwletu do jsp? setAttribute
i getAttribute
nie działa dla mnie :-(Przekazywanie zmiennych z serwletu do jsp
Odpowiedz
Można ustawić wszystkie wartości do obiektu odpowiedzi przed forwaring żądanie do JSP. Albo można umieścić swoje wartości do fasoli sesji i do niego dostęp w JP
Thanks koleś. Zrobiłem to samo i zadziałało to dla mnie. :-) – Developer
Zastosowanie
request.setAttribute ("attributeName").
i
getServletContext(). GetRequestDispatcher ("/ file.jsp"). Forward();
Następnie będzie dostępny na stronie JSP.
Na marginesie - w swoim jsp należy unikać kodu java. Użyj JSTL.
Dzięki Bozho! Nie wiem teraz zbyt wiele o JSTL. Ale zdecydowanie się tego nauczę. – Developer
Dlaczego 'getServletContext()', a nie 'request'? – CodyBugstein
To nie działać, gdy:
Jesteś przekierowanie odpowiedzi na nowego wniosku przez
response.sendRedirect("page.jsp")
. Nowo utworzony obiekt żądania oczywiście nie będzie już zawierać atrybutów i nie będzie dostępny na przekierowanej stronie JSP. Musisz przekierować, a nie przekierować. Na przykład.request.setAttribute("name", "value"); request.getRequestDispatcher("page.jsp").forward(request, response);
łączysz to w niewłaściwy sposób lub za pomocą złą nazwę. Zakładając, że masz ustawić go przy użyciu nazwy
"name"
, to powinieneś być w stanie uzyskać do niego dostęp w przekazany strony JSP następująco:${name}
Przekazywanie po, na przykład, formularzu księgowania jest traktowane jako zła praktyka, powinieneś używać prawdziwych przekierowań (301). Następnie musisz przekazać stan według sesji lub uzyskać parametry. – lukyer
tak doskonała odpowiedź @BalusC – Binay
@BalusC, co masz na myśli przez "powinieneś być w stanie uzyskać do niego dostęp na przekierowanej stronie JSP w następujący sposób: $ {name}" ?? Próbowałem napisać <% out.println ($ {name});%> i nie zadziałało. ale <% out.println (request.getAttribute ("name"));%> zrobił. – Pavel
Poza tym przy użyciu atrybutuprzekazać informacje z serwletu do strony JSP można również przekazać parametr . Odbywa się to po prostu poprzez przekierowanie do adresu URL, który określa stronę JSP, i dodanie mechanizmu normalnego przekazywania parametrów przez adres URL.
Przykład.Odpowiedni fragment kodu serwletu:
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
// processing the request not shown...
//
// here we decide to send the value "bar" in parameter
// "foo" to the JSP page example.jsp:
response.sendRedirect("example.jsp?foo=bar");
}
A odpowiednia część JSP stronie example.jsp
:
<%
String fooParameter = request.getParameter("foo");
if (fooParameter == null)
{
%>
<p>No parameter foo given to this page.</p>
<%
}
else
{
%>
<p>The value of parameter foo is <%= fooParameter.toString() %>.</p>
<%
}
%>
Prosty sposób, który znalazłem znaczy
W serwletu:
Możesz ustawić wartość i przekazać ją do JSP, jak poniżej:
req.setAttribute("myname",login);
req.getRequestDispatcher("welcome.jsp").forward(req, resp);
W Welcome.jsp można uzyskać wartości przez
.<%String name = (String)request.getAttribute("myname"); %>
<%= name%>
(lub), bezpośrednio u można nazwać
<%= request.getAttribute("myname") %>.
Wszystkie odpowiedzi są prawidłowe, ale ten wygląda na prosty ... – Siva
Można również użyć RequestDispacher i przekazać wraz z danymi strona jsp, którą chcesz.
request.setAttribute("MyData", data);
RequestDispatcher rd = request.getRequestDispatcher("page.jsp");
rd.forward(request, response);
To jest kod serwletu, który zawiera zmienną łańcuchową a. wartością dla a jest przechodzenie ze strony html z formularzem. , a następnie ustaw zmienną w obiekcie żądania. następnie przekazać go do jsp metodami forward
i requestdispatcher
.
String a=req.getParameter("username");
req.setAttribute("name", a);
RequestDispatcher rd=req.getRequestDispatcher("/login.jsp");
rd.forward(req, resp);
w JSP następujące kroki przedstawione poniżej w programie
<%String name=(String)request.getAttribute("name");
out.print("your name"+name);%>
- 1. Przekazywanie niestandardowych obiektów z serwletu do JSP
- 2. Przekazywanie danych z serwletu do innego serwletu za pomocą RequestDispatcher
- 3. Przekazywanie tablicy javascript do serwletu
- 4. W jaki sposób Jperper silnika JSP, skompilować JSP do serwletu?
- 5. Przekazywanie c: forEach zmienna do jsp: include
- 6. jak przekierować z serwletu na stronę JSP
- 7. jsp kontener kontra kontener serwletu
- 8. Przekazywanie zmiennych do shell_exec()?
- 9. Przekazywanie zmiennych do awk z bash
- 10. Wyświetlanie wyników serwletu na stronie jsp.
- 11. Przekazywanie zmiennych bash do skryptu?
- 12. Przekazywanie ogólnej listy do znacznika JSP
- 13. jsp formularz wyślij dane do serwletu bez zmiany strony
- 14. Jak przekazywać informacje z serwletu na stronę JSP?
- 15. logowanie, zapamiętaj mnie, aplikacja korzystająca z serwletu java i jsp
- 16. Przekazywanie zmiennej serwletowej do javascript
- 17. Przekazywanie parametrów z jsp do metody kontrolera Spring
- 18. przekazywanie zmiennych przez ssh
- 19. Jak przesłać parametry z serwletu
- 20. Android: przekazywanie zmiennych do już działającej usługi
- 21. Przekazywanie zmiennych do wątku Event Dispatch
- 22. Przekazywanie zmiennych środowiskowych do `./Configure` autoconf
- 23. Odpowiedź: przekazywanie ocenianych zmiennych do zakresu
- 24. Przekazywanie zmiennych php do zakładki aplikacji Facebook
- 25. Przekazywanie zmiennych końcowych do anonimowych klas
- 26. Przekazywanie zmiennych bootstrapowych i JSON do require.js
- 27. Przekazywanie zmiennych środowiskowych do kontenerów Docker
- 28. Przekazywanie zmiennych między zasobami kucharz
- 29. Czy możliwe jest użycie strony JSP jako szablonu dla serwletu?
- 30. Przekazywanie zmiennych w aplikacji Spray.io
Niektóre przykładowy kod pomogłoby – skaffman