2013-04-25 16 views
8

Używam kontrolera mvc sprężyny. Wewnątrz kontrolera wkładam trochę wartości, powiedzmy string wewnątrz modelu. Teraz chciałbym zwrócić tę wartość lub pozwala po prostu wydrukować tę wartość wewnątrz javascript. Jak mam to zrobić? Oto moja klasa kontrolera. Dodaję "film" jako klucz. Teraz chcę, aby wyświetlić tę nazwę filmu wewnątrz skryptu Java (. Nie wewnątrz JSP Jednak Wewnątrz JavaScript)Jak uzyskać wartość klucza modelu kontrolera sprężyny w środku javascript?

@Controller 
@RequestMapping("/movie") 
public class MovieController { 

    @RequestMapping(value="/{name}", method = RequestMethod.GET) 
    public String getMovie(@PathVariable String name, ModelMap model) { 

     model.addAttribute("movie", name); 
     return "list"; 

    } 

} 

Oto moja JSP

<html> 
<head> 
//I want to print movie name inside java script not inside jSP body tag. 
<script type="text/javascript"> 
var movie_name = ${movie}; 
alert("movies name"+ movie_name); 
</script> 
</head> 
<body> 
    <h3>Movie Name : ${movie}</h3>//When i print here its working fine. 
</body> 
</html> 

Odpowiedz

17

Użyj tego:

var movie_name = "${movie}"; 

zamiast:

var movie_name = ${movie}; 

Podczas używania wartości ${movie} wartość zostanie umieszczona na stronie bez cudzysłowów. Ponieważ domyślam się, że jest to ciąg znaków, JavaScript wymaga, aby łańcuchy były otoczone cytatami.

Jeśli sprawdziłeś konsolę przeglądarki, prawdopodobnie zobaczyłbyś błąd podobny do Unexpected identifier lub ___ is not defined.

+1

Thats na miejscu . Dzięki dopingiem Lan !! –

+0

Lan Mam małe pytanie, co jeśli model.addAttribute ("login", nowe logowanie ("uname", "pass")); Mam obiekt wewnątrz mapy i chcę wydrukować tylko jeden atrybut tego obiektu wewnątrz javascript. Podobnie jak obiekt jest z klasy Login i ma nazwę użytkownika i hasło jako atrybut. Teraz chcę wydrukować tylko nazwę użytkownika wewnątrz javascript. Jak mam to zrobić? Na przykład var login = "$ {SomeOject}"; alert (login.uname); ?? jak mogę uzyskać indywidualne wartości klasy Login? –

+0

@DheerajVarne Co to jest 'SomeObject'? "Obiekt"? Na twojej stronie JSP możesz użyć '$ {movie.attribute}', ale to zależy od tego jak zdefiniowano 'SomeObject' – Ian

1

Spróbuj tego ...

Gdybyś dodał obiekt w modelu jako:

model.addAttribute("someObject", new Login("uname","pass")) 

Następnie należy uzyskać właściwości obiektu modelu jako

var user_name = ${someObject.uname}; // This is assuming that the Login class has getter as getUname(); 
var user_pass = ${someObject.pass}; 
Powiązane problemy