使用 jstl 读取从 ajax 发送到 jsp 页面的数据

Read data sent from ajax to jsp page using jstl

我有一个 ajax 调用 jsp 包含特定数据的页面。

$.ajax({

    type: "POST",

    url: "jsp/order.jsp",
    data: {
        "dishId"                    :   id,
        "dishPrice"                 :   price,
        "dishName"                  :   name

          },
    success: function(msg) {
        alert(msg);
          }
    });

我想使用 jstl 读取 order.jsp 中的数据。但是我无法使用以下语句来做到这一点。

<c:out value='${dishName}' />
<c:out value='${dishId}' /> 

我知道可以使用 scriptlet 来完成,但想使用 jstl 来完成。

所有 HTTP 请求参数都在 EL 中,可通过隐式 ${param} 映射获得。

所以,应该这样做:

<c:out value="${param.dishName}" />
<c:out value="${param.dishId}" /> 

另请参阅:


与具体问题无关,请注意“JSTL" and "EL”有很大区别。那些 <c:xxx> 东西是 JSTL 标签。那些 ${...} 东西是 EL。您也可以独立使用 EL:

${param.dishName}
${param.dishId}

然而,这会打开一个潜在的 XSS attack hole,因此需要 <c:out> 来逃避它。

而且,你最好使用 servlet instead of a JSP to deal with HTTP requests. See also How to use Servlets and Ajax?