我正在使用隐藏输入类型来设置值并使用 request.getParameter() 在另一个页面中获取值,但它总是返回“null”
Posted
技术标签:
【中文标题】我正在使用隐藏输入类型来设置值并使用 request.getParameter() 在另一个页面中获取值,但它总是返回“null”【英文标题】:I am using hidden input type to set value and using request.getParameter() to get the value in another page but it is always returning “null” 【发布时间】:2017-07-22 08:49:01 【问题描述】:我正在使用隐藏输入类型来设置值并使用 request.getParameter() 在另一个页面中获取值,但它总是返回“null”。 为什么它返回空值? 第一页:-
<%
try
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/passkey_database","postgres","4457");
PreparedStatement ps=con.prepareStatement("select * from visitor_table");
ResultSet rs=ps.executeQuery();
ResultSetMetaData metaData=rs.getMetaData();
while(rs.next())
%>
<tr>
<td>
<input type="text" name="name" value="<%=rs.getString("visitor_name")%>">
<a href="permissionform.jsp"> <%=rs.getString("visitor_name")%> </a>
</td>
<%for(int i = 2; i<=metaData.getColumnCount();i++) %>
<td>
<%= rs.getString(i)%>
</td>
<% %>
</tr>
<%
catch (Exception e)
e.printStackTrace();
第二页:-
<%
String name=request.getParameter("name");
out.println(name);
try
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/passkey_database","postgres","4457");
PreparedStatement ps=con.prepareStatement("select * from visitor_table where visitor_name=?");
ps.setString(1,name);
ResultSet rs=ps.executeQuery();
while(rs.next())
%>
【问题讨论】:
隐藏字段周围有表格吗? 不要在jsp中直接使用sql。 因为您不将输入数据发送到第二页。为此,您需要一个表单或显式指定一个带有参数的 url,如下所示: href="permissionform.jsp?name=" 是的,隐藏字段周围有一个表格 【参考方案1】:你可以通过一个简单的技巧来完成这项任务
更新这一行
<%
String visitor_name = rs.getString("visitor_name");
String link = "permissionform.jsp?name=" + visitor_name;
%>
<input type="text" name="name" value="<%=visitor_name%>">
<a href="<%=link%>"><%= visitor_name%></a>
如果你使用这段代码,你真的不需要<input>
标签,因为链接已经被解析了。
如果visitor_name
是not null
,则此name
的值将不是null
希望对您的问题有所帮助。:)
【讨论】:
【参考方案2】:您可以使用 Session 、 Cookie 或 Context 对象在其他页面中获取变量,或者如果您有 <input type="submit"/>
标签,则可以使用表单标签来操作另一个页面
试试这个代码
<td>
<form action="permissionForm.jsp">
<input type="text" name="name"
value="<%=rs.getString("visitor_name")%>">
<input type="submit" value="<%=rs.getString("visitor_name")%>"/>
</form>
</td>
【讨论】:
以上是关于我正在使用隐藏输入类型来设置值并使用 request.getParameter() 在另一个页面中获取值,但它总是返回“null”的主要内容,如果未能解决你的问题,请参考以下文章