如何将一个字符串从一个jsp传递到另一个jsp,其中每个字符串都在一个链接中,并通过单击链接方式来检索字符串

问题描述 投票:1回答:2

我从数据库中获取数据(一些字符串),我在A.jsp页面的链接中覆盖了每个字符串。现在,如果单击链接,则链接覆盖的字符串将显示在B.jsp中。在这里我注意到在数据库中我将​​图像存储为字符串。所以这里的字符串只是一个图像。

<% ResultSet rs=st.executeQuery("Select name,image from base64image");
int ii=0;
while(rs.next()){
    if(ii==0)
    out.println("<tr>");
    ii=1;
  %>
   <td><a href="B.jsp"> <img src='<%=rs.getString(2)%>'  height='200px;' width='200px' />n</a></td> 
  <% 
  i++;
  if(i%3 ==0 ){
   out.println("</tr>");
   ii=0;
  }

   }
out.println("</tr> </table>");
}
java string jsp servlets jdbc
2个回答
0
投票

好的,所以查看你的代码,使用表达式标签输出你需要的字符串。此字符串是图像源路径,然后该图像将用作B.jsp页面的单击链接。

我假设这个表达式是java,因为你使用的变量有一个对象类型,以及相应的“getString()”方法。如果是这种情况,您的代码不会将上述“rs”对象显示在jsp <%%>标记中。你在jsp文件中编写的任何java都需要在这些标记中。

<% ResultSet rs=st.executeQuery("Select name,image from base64image"); %>

这就是说以这种方式在scriptlet中使用java通常被认为是不好的做法,但是,我可以理解想要清理jsp文件,并最小化完成查询的行数。这就是说,只是为了完成这个答案,这就是你如何使用jstl标签完成同样的事情:

//first include the sql tag library in your Jsp
<%@ taglib prefix = "sql" uri = "http://java.sun.com/jsp/jstl/sql" %>

<sql:query dataSource = "datasource/here" var = "result">
   //full query here
   SELECT * from Employees;
</sql:query>

//You can then use the result variable using standard jsp
//Here you can grab the row, or sift through multiple results, etc.
<c:forEach var = "row" items = "${result.rows}">
    <a href="B.jsp"> <img src='${row.columnName}'  height='200px;' width='200px' />n</a>
</c:forEach>

信息和示例here

然而,这是你的jsp中的很多代码,甚至不是最好的解决方法。因为您只希望返回一行,所以您将被迫处理结果,就好像它返回了多行一样。 (但是,如果你需要将这些信息放入表格格式,这很棒)

另一种解决方案是使用java servlet。我不能完全推荐这个,因为我不知道你的代码的结构。这可能很容易,也可能很难在您的系统中实现。然而,这仍然没有超越单线方法。

如果你是通过一个单独的servlet类完成这个,你基本上可以通过jsp中的ajax调用或者使用this answer中提到的其他各种方法来调用类。

我希望我帮助你解决问题,并帮助其他任何偶然发现这个问题的人!


0
投票

在A.jsp中传递带有锚标记的Id

'<a href="B.jsp?Id="<%rs.getString(1)%>"> <img src='c%></a>

现在在B.jsp中从数据库中检索所有名称第1列值。如果它与此id值匹配,则使用标记显示图像

<img src="<%=rs.getString(2)" />
© www.soinside.com 2019 - 2024. All rights reserved.