好吧无法在任何地方找到它,我想知道如何从jsp或servlet中获取文本框的值并将其显示在另一个servlet中。
现在我的问题不是传递数据并实际显示它,我的问题是,只要空间在值中,我只能得到第一位信息。例如:
<form method="post" action="Phase1Servlet">
<p>Favorite Place:</p> <input type="text" name="place"></div>
<input id="submit" type="submit" value="Submit">
</form>
说用户输入“The Mall”
我使用的Servlet中的:
String place = request.getParameter("place");
然后在我的代码中的某处输出变量位置我只得到“The”这个词
我是否需要使用request.getParameterValues(“place”);代替?如果是这样,我如何通过隐藏字段将值从servlet传递给servlet?当我这样做时:
String [] placeArr = request.getParameterValues("place");
out.println("<input type=\"hidden\" name=\"place\" value="+ placeArr +">");
隐藏字段实际存储[Ljava.lang.String; @ f61f5c
我必须解析这个或以某种方式转换它吗?
答案 0 :(得分:3)
应该是
String placeArr = request.getParameterValue("place");
out.println("<input type=\"hidden\" name=\"place\" value=\""+ placeArr +"\">");
在隐藏字段中转义字符串
答案 1 :(得分:2)
你确实在使用
时确定String place = request.getParameter("place");
place
变量在第一个空格之前只包含单词?因为这是相当奇怪的情况。如果要将参数传递给另一个servlet(假设从该servlet调用另一个servlet),可以在第一个servlet中设置一个request属性,然后将该请求分派给另一个servlet,例如:
request.setAttribute("place", "The mail");
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher( path_to_another_servlet );
dispatcher.forward( request, response );
然后在另一个servlet中,ypu可以将它用作:
String place = request.getAttribute("place");