我正在使用隐藏的输入类型来设置值,并使用request.getParameter()在另一个页面中获取值,但它总是返回&



我正在使用隐藏的输入类型来设置值并使用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()){
%>

您只需一个简单的技巧即可完成此任务

更新此行

<%
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>标记,因为链接已经被解析。

通过此name如果visitor_namenot null,则不会null措辞的值

希望它对您的问题有所帮助:)

您可以使用会话、Cookie 或上下文对象来获取其他页面中的变量,或者如果您有<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>

最新更新