我有一个变量${bean.name}
如何将它传递给javascript var?我尝试过var name = "${bean.name}"
和var name = ${bean.name}
,但它不起作用。
我的想法是将其置于隐藏的输入中,例如隐藏的<input id="test" type="text" value"${bean.name}">
var name = document.getElementById("test").value;
这不起作用var name
成为字符串"${bean.name}"
请注意。我不能使用jstl
答案 0 :(得分:7)
您无法在.js
个文件中评估JSTL。仅限.jsp
个文件。 (除非你重新映射jsp servlet,但我不建议这样做。)
更好的方法是在.jsp中定义变量,包括.js,并将这些变量作为参数传递给初始化函数。
另外请确保您没有isELIgnored="true"
答案 1 :(得分:4)
这不起作用var var成为字符串“$ {bean.name}”
确保您正在运行支持Servlet 2.4的容器,并且web.xml
被声明为Servlet 2.4或更高版本。
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- Config here. -->
</web-app>
这样EL也可以在模板文本中工作(不需要JSTL <c:out>
)。它是在Servlet 2.4 / JSP 2.0中引入的。 Tomcat 5.5是Servlet 2.4容器的一个例子。如果您的容器支持更高的servlet API版本,例如2.5或3.0,那么您应声明web.xml
符合此版本以使所有最新功能受益。
您还可以在JSP中执行以下操作:
<script type="text/javascript">var name = '${bean.name}';</script>
答案 2 :(得分:0)
答案 3 :(得分:0)
Bozho建议的一个例子,这种方式我登录facebook。
<强> 方案: 强>
我在application.properties中有一个属性,我在facebook-login-sdk.js
初始化facebook登录时需要这个值。所以我通过下面的代码在java LoginController
中读取它,然后在login.jsp
中读取它并分配一个全局变量applicationFacebookId
然后在facebook-login-sdk.js
文件中使用这个全局变量。
重要提示: 在包含facebook-login-sdk.js之前读取变量名applicationFacebookId。因为您将使用全局变量,所以您希望在调用facebook-login-sdk.js之前设置它。
<强> application.properties 强>
security.application.facebookId=yourApplicationFacebookid
<强> LoginController.java 强>
@Value("${security.application.facebookId}")
private String applicationFacebookId;
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(HttpServletRequest request, Model model) {
model.addAttribute("applicationFacebookId", applicationFacebookId);
return "login";
}
<强> 的login.jsp 强>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script>
var applicationFacebookId = '${applicationFacebookId}';
//alert('applicationFacebookId:' + applicationFacebookId);
</script>
<title>Login Page</title>
<script src="<c:url value="/static/js/facebook-login-sdk.js" />"></script>
</head>
</html>
<强> Facebook的登录-sdk.js 强>
window.fbAsyncInit = function() {
FB.init({
appId : applicationFacebookId,
cookie : true, // enable cookies to allow the server to access
xfbml : true,
version : 'v2.7'
});