Übergabe des Model-Attributs während der Umleitung im Frühjahr MVC und Vermeidung derselben in URL
Ich bin ein Neuling auf Frühling
ich habe gesucht web und Verwandte Beiträge in stackoverflow zu. Finde ich nicht die eine, die ich tatsächlich benötigen.
Mein Ziel ist es, pass-Modell-Attribute-controller, um jsp-Seite in eine Umleitung und vermeiden Sie das Attribut angezeigt wird in der URL.
Die unten ist die überprüfung von login-datastore mit jdo.
Mein Controller:
@Controller
public class LoginController {
int count;
PersistenceManager pm = PMF.get().getPersistenceManager();
//Instance of data class
User user;
ModelAndView modelAndView=new ModelAndView();
@RequestMapping(value="/Login",method = RequestMethod.POST)
public ModelAndView loginValidate(HttpServletRequest req){
//Getting login values
String uname=req.getParameter("nameLogin");
String pswd1=req.getParameter("pswdLogin");
count=0;
user=new User();
//Generating Query
Query q = pm.newQuery(User.class);
q.setFilter("userName == userNameParam");
q.declareParameters("String userNameParam");
try{
List<User> results = (List<User>) q.execute(uname);
for (User u: results) {
String userName=u.getUserName();
if(userName.equals(uname)){
System.out.println(u.getPassword());
if(u.getPassword().equals(pswd1)){
count=count+1;
modelAndView.setViewName("redirect:welcome");
modelAndView.addObject("USERNAME",uname);
return modelAndView;
}
//rest of the logic
}
JSP:
<h1>Welcome ${USERNAME} </h1>
Meine URL " /willkommen?USERNAME=robin
Mein Ziel ist es zu zeigen, wie /willkommen
Auch meine Seite soll auf die Anzeige "Willkommen robin" in der Erwägung, dass es zeigt nur Begrüßen. Bitte lassen Sie mich wissen, wie kann ich es beheben.
Vielen Dank im Voraus!
Kommentar zu dem Problem
Nicht beantworten Ihre Frage, nur eine Anmerkung zu deinen coding style. DB-Abfragen im controller ist nicht schön. Greifen Sie von einigen userDAO über service. Und das ist noch wichtiger. Es scheint mir, Sie sind die Speicherung von Benutzer-Passwörter, sobald Sie gesendet werden vom client und nicht-hash. Das ist extrem unsicher.
Ja, ich werde mich ändern. Ich Tat dies nur für die Zeit, Sie zu erlernen. Wird Konto und ändern Sie Sie. Danke!
Ich habe nicht jede spring-security.
InformationsquelleAutor der Frage Chandni | 2014-06-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie die flash-Attribut Anlage von Spring MVC. Wenn Sie wünschen, dass Daten zugänglich sein, nachdem eine Umleitung, die Sie nicht fügen Sie es auf das Modell (
Model
,ModelMap
oderModelAndView
), aber zu einemRedirectAttributes
Sie erhalten als parameter in einer controller-Methode.Diese flash-Attribute übergeben werden, die über die session (und werden sofort zerstört, nachdem Sie verwendet wurden - siehe Frühjahr-Referenz-Handbuch für details). Dies hat zwei Interessen :
InformationsquelleAutor der Antwort Serge Ballesta
Müssen Sie hier vorsichtig sein, weil ich denke, was Sie versuchen zu tun, wird nicht unterstützt für einen guten Grund. Die "redirect" Richtlinie wird eine BEKOMMEN Anfrage an den controller an. Die BEKOMMEN Antrag sollte nur abrufen vorhandener Zustand mittels des request-Parameter, dies ist die Methode, Vertrag. Dass BEKOMMEN Anfrage sollte nicht verlassen sich auf eine Vorherige Interaktion oder für jedes Objekt gespeichert, wo einige in der Sitzung als Ergebnis. BEKOMMEN Anfrage dient zum abrufen von vorhandenen (permanenten) Zustand. Original (POST) Antrag sollte beibehalten alles, was Sie für Sie BEKOMMEN Anforderung zum abrufen eines Staates.
RedirectAttributes sind nicht darauf ausgelegt, Sie zu unterstützen, in diesem Fall, und selbst wenn Sie es geschafft, richtig zu verwenden, es wird nur einmal Arbeit und dann werden Sie vernichtet. Wenn Sie dann den browser aktualisieren, erhalten Sie einen Anwendungsfehler, weil Sie nicht finden können Ihre Attribute nicht mehr.
InformationsquelleAutor der Antwort DhafirNz
Alle Objekte, die senden mit redirect übergeben werden können, in der URL selbst von controller -
Diese Meldung variable wird in der URL als GET-request -
Können Sie nun Zugriff auf die variable, die auf Ihrem JSP-durch Scriptlet -
InformationsquelleAutor der Antwort devutkarsh