我有一个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时没有任何值。
答案 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);