注意:此问题已在以下link中得到解答,唯一的区别是在此问题中我只想发送除完整对象以外的特定值。
我想创建一个表单,其中与输入值一起我还想使用setAttribute()方法将值从JSP发送到servlet。
实施例
demo1.jsp
<form method="POST" action="DEMO1">
<% request.setAttribute("value",1); %>
<input type="submit" value="Add" />
</form>
demo1的
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
PrintWriter pw=response.getWriter();
pw.println(request.getAttribute("value"));
}
当我用来发布我的页面时,它会打印一个空值。是否有任何进程可以访问servlet中jsp的 setAttribute()值。
答案 0 :(得分:1)
您需要了解此处的处理顺序。执行request.setAttribute("value",1);
时,只需在当前请求对象上设置属性value
,只要将HTML表单返回给用户,该属性就会停止存在。当用户提交表单时,没有名为&#39; value&#39;在形式。因此,当您的servlet尝试从请求对象中检索它时,它将返回null,因为它不存在。
使用隐藏的输入来存储您希望服务器在提交表单时接收的值。
<input type="hidden" name="value" value="1" />
因此,您的演示JSP将如下所示:
<form method="POST" action="DEMO1">
<input type="hidden" name="value" value="1" />
<input type="submit" value="Add" />
</form>