我使用查询字符串将参数发送到表单操作标记中的其他页面
但是当我在下一页上获取值时,它显示null
并且null
存储在数据库中。
我的代码如下:
out.println("<html>");
out.println("<form action=SubmitTimesheet?manager="+manager+">");
在另一页上,我试图以下列方式获取参数值:
String manager=request.getParameter("manager");
out.println(manager);
但它正在打印null
,如果我试图将获取的值存储在数据库中,则存储为空。
请帮忙。
答案 0 :(得分:0)
如果@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
return;
}
// Otherwise defer to system default behavior.
super.onBackPressed();
}
值为空,请不要添加manager
查询参数。
还记得对查询参数进行编码。
最后,应引用manager
属性的值。
action
您也可以使用out.print("<form action=\"SubmitTimesheet");
if (manager != null)
out.print("?manager=" + URLEncoder.encode(manager, "UTF-8"));
out.println("\">");
。
"UTF-8"
字符串文字
<强>更新强>
实际上,您不应该将查询参数添加到StandardCharsets.UTF_8
的操作中。表单将发布<form>
和其他表单相关元素的所有值,因此您应该做的是将<input>
值添加为隐藏输入字段:
manager
以上使用回答问题Recommended method for escaping HTML in Java建议的库。
答案 1 :(得分:0)
我使用会话对象并在会话变量而不是查询字符串中传递了manager的值。 我使用了以下代码:
ses.putValue(&#34;经理&#34;,经理);
在第一个servlet页面上然后在第二个servlet页面上我获取了这样的值:
String manager=ses.getValue("manager").toString();
out.println(manager);
现在它正在打印正确的值而不是null