2013-04-25 31 views
8

Tôi đang sử dụng bộ điều khiển mvc lò xo. Bên trong điều khiển tôi đang đặt một số giá trị cho phép nói chuỗi bên trong mô hình. Bây giờ tôi muốn lấy lại giá trị đó hoặc cho phép chỉ cần nói rằng in giá trị bên trong một javascript. Tôi phải làm nó như thế nào? Đây là lớp điều khiển của tôi. Tôi đang thêm "phim" làm khóa. Bây giờ tôi muốn hiển thị tên của bộ phim trong kịch bản java (. Không bên JSP Tuy nhiên Bên trong Javascript)Làm thế nào để có được mùa xuân mvc điều khiển mô hình giá trị quan trọng bên trong 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"; 

    } 

} 

ở đây là tôi 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> 

Trả lời

17

Sử dụng này:

var movie_name = "${movie}"; 

thay vì:

var movie_name = ${movie}; 

Khi sử dụng ${movie}, giá trị được đặt trên trang mà không có dấu ngoặc kép. Vì tôi đoán đó là một chuỗi, Javascript yêu cầu chuỗi được bao quanh bởi dấu ngoặc kép.

Nếu bạn đã kiểm tra giao diện điều khiển của trình duyệt, có thể bạn sẽ thấy một lỗi như Unexpected identifier hoặc ___ is not defined.

+1

Thats tại chỗ trên . Cảm ơn Lan chúc mừng !! –

+0

Lan tôi có một câu hỏi nhỏ nếu model.addAttribute ("đăng nhập", đăng nhập mới ("uname", "pass")); có một số đối tượng bên trong bản đồ và tôi muốn in chỉ một thuộc tính của đối tượng đó bên trong javascript. Giống như đối tượng là Lớp đăng nhập và nó có tên người dùng và mật khẩu làm thuộc tính. Bây giờ tôi muốn in chỉ tên người dùng bên trong javascript. Tôi phải làm nó như thế nào? Ví dụ: var login = "$ {SomeOject}"; alert (login.uname); ?? làm cách nào để tôi nhận được các giá trị riêng lẻ của Lớp Đăng nhập? –

+0

@DheerajVarne 'SomeObject' là gì? Một 'Object'? Trong JSP của bạn, bạn có thể sử dụng '$ {movie.attribute}', nhưng nó phụ thuộc vào cách 'SomeObject' được định nghĩa – Ian

1

Hãy thử này ...

Nếu bạn đã thêm đối tượng vào mô hình như:

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

Sau đó, bạn sẽ có được các thuộc tính của đối tượng mô hình như

var user_name = ${someObject.uname}; // This is assuming that the Login class has getter as getUname(); 
var user_pass = ${someObject.pass}; 
Các vấn đề liên quan