【发布时间】:2018-04-19 00:46:38
【问题描述】:
我有一个 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 项目。
编辑:到目前为止,我发现问题不在于表达式语言不起作用。请求属性在到达 JSP 时没有任何值。
【问题讨论】:
-
试试
param.paramstackoverflow.com/questions/26747831/… -
感谢您的建议,但这不起作用。该属性是一个简单的值,因此应该使用 ${param} 访问。 ${param.param} 用于嵌套属性。
-
不,第一个参数是访问请求参数第二个参数是因为你叫它参数。
-
您发布到 JSP 而不是您的 servlet?这里 jsp 中的操作看起来不像 servlet 路径:
<form action="samplePage.jsp" method="post">。 -
是的,我是。但正如我提到的,我这样做只是为了测试。无论如何,当参数通过 RequestDispatcher 从 Servlet 发送时,它再次不起作用 - 因为代码是正确的,所以应该是这种情况。
标签: java jsp servlets web-applications