JSP通过ajax发送Java变量

时间:2017-06-13 08:53:05

标签: java jquery ajax jsp

我想发送我通过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变量吗?

2 个答案:

答案 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>