2013-04-25 16 views
8

Sto usando un controller mvc a molla. Dentro il controllore sto mettendo un po 'di valore per dire una stringa all'interno del modello. Ora vorrei rivivere quel valore o lasciare solo dire di stampare quel valore all'interno di un javascript. Come lo faccio? Ecco la mia classe controller. Sto aggiungendo "film" come chiave. Ora voglio vedere quello stesso nome del film all'interno java script (. Non all'interno JSP Tuttavia all'interno JavaScript)Come ottenere il valore chiave del modello del controller mvc di primavera in 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"; 

    } 

} 

qui è il mio 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> 

risposta

17

Utilizzare questa:

var movie_name = "${movie}"; 

invece di:

var movie_name = ${movie}; 

Quando si utilizza ${movie}, il valore viene inserito nella pagina senza virgolette. Poiché suppongo sia una stringa, Javascript richiede che le stringhe siano contornate da virgolette.

Se hai controllato la console del browser, probabilmente avresti visto un errore come Unexpected identifier o ___ is not defined.

+1

Quello è posto su . Grazie Lan, grazie! –

+0

Lan ho una piccola domanda e se il model.addAttribute ("login", nuovo Login ("uname", "pass")); avere qualche oggetto all'interno della mappa e voglio stampare solo un attributo di quell'oggetto all'interno di javascript. Come l'oggetto è di Login Class e ha username e password come attributo. Ora voglio stampare solo il nome utente all'interno di javascript. Come lo faccio? Ad esempio var login = "$ {SomeOject}"; alert (login.uname); ?? come ottengo i singoli valori della classe di accesso? –

+0

@DheerajVarne Che cosa è 'SomeObject'? Un 'oggetto'? Nel tuo JSP, puoi usare '$ {movie.attribute}', ma dipende da come 'SomeObject' è definito – Ian

1

Prova questo ...

Se si aveva aggiunto l'oggetto nel modello come:

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

Quindi si ottiene le proprietà dell'oggetto modello come

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