JSP没有获取请求参数

时间:2017-11-06 19:06:04

标签: java jsp servlets web-applications

我有一个JSP页面,在显示时没有看到任何请求参数值。最初我尝试从Servlet传递参数,但这些参数不起作用。就像测试一样,我也尝试从html页面上的表单调用JSP。

我在Servlet中做了什么:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String sampleValue = sampleModel.getMyValue();
    request.setAttribute("param", sampleValue);

    RequestDispatcher view = request.getRequestDispatcher("samplePage.jsp");
    view.forward(request, response);
}

我如何通过隐藏字段的表单从HTML页面调用JSP:

<div>
    <form action="samplePage.jsp" method="post">
        <input name="param" type="hidden" value="sampleValue"/>
        <input type="submit" value="Update">
    </form>
</div>

最后我在JSP上的内容:

<body>
    <p>Some info: ${param}</p>
</body>

正如我所说的问题是请求属性“param”的值,即“sampleValue”,不会在页面上呈现。

我已经看到很多例子如何完成,我认为我的代码是正确的。还有其他原因导致这可能不起作用吗?我正在使用Tomcat 8.5运行maven项目。

编辑:到目前为止我发现的问题不是表达式语言不能正常工作。 request属性在到达JSP时没有任何值。

4 个答案:

答案 0 :(得分:1)

请确保jsp页面中的isELIgnored为false。使用jsp顶部的bellow标记。

<%@ page isELIgnored="false" %>

您也可以通过${2 * 4}输出确保这一点在JSP上打印为8

答案 1 :(得分:0)

您的表单正在使用 method = post 。您的Servlet代码应位于 doPost方法而不是 doGet

答案 2 :(得分:0)

对于Servlet案例,请使用

替换 samplePage.jsp 中的 $ {param}
<%=request.getAttribute("param")%>

对于JSP案例,请使用

替换 samplePage.jsp 中的 $ {param}
<%=request.getParameter("param")%>

答案 3 :(得分:0)

首先,检查变量sampleValue是否正在捕获您从JSP传递的字符串,如下所示

String sampleValue = sampleModel.getMyValue();
System.out.println(sampleValue);