我想发送我通过ajax请求定义的JSP java变量,它有可能吗?
我的JSP:
<%
String fileName = (String)request.getAttribute(MatafConstants.PARAM_IMG_FILE_NAMES);
%>
然后我想发送这个字符串:
$.ajax({
url: "/some/urlServlet",
type: "get", //send it through get method
data: {
"statusID": status,
"test": '<%=fileName%>' //here is the param I send
},
success: function(response) {
//Do Something
console.log(response);
},
error: function(xhr) {
//Do Something to handle error
}
});
我如何发送此参数?或者更大的问题我可以在JavaScript中使用JSP java变量吗?
答案 0 :(得分:1)
您可以使用scriplet中的值创建隐藏字段,然后在Java Script中使用它的值。如下所示:
JSP代码
<input type="hidden" id="fileName" value="<%=(String)request.getAttribute(MatafConstants.PARAM_IMG_FILE_NAMES)%>">
Java脚本代码
data: {
"statusID": status,
"test": document.getElementById("fileName").value;
},
答案 1 :(得分:0)
答案是肯定的。并且您的请求看起来正确。但请确保在要启动的变量的同一页面中添加AJAX调用。
<jsp:declaration>
String name=null;
String role=null;
String company=null;
</jsp:declaration>
<jsp:scriptlet>
if(request.getSession().getAttribute("username")==null){
response.sendRedirect("../login.jsp");
}
else{
name=(String)request.getSession().getAttribute("username");
role= (String)request.getSession().getAttribute("role");
company=(String)request.getSession().getAttribute("company");
}
</jsp:scriptlet>
在同一页面的javascript中:
<script>
var name="<jsp:expression>name</jsp:expression>";
var company="<jsp:expression>company </jsp:expression>";
</script>