Java 使用Struts 2在MySQL的JSP页面中查看图像
我有一个按钮来获取图像并将其放入MySQL数据库。在此之后,我希望图像将显示在同一页。我是Struts2的新手,现在不知道该怎么办 这是我的类Java 使用Struts 2在MySQL的JSP页面中查看图像,java,mysql,image,jsp,struts2,Java,Mysql,Image,Jsp,Struts2,我有一个按钮来获取图像并将其放入MySQL数据库。在此之后,我希望图像将显示在同一页。我是Struts2的新手,现在不知道该怎么办 这是我的类Registrazione.java: public String visualizzaimg() throws SQLException, IOException { Connessione(); // DB connection method PreparedStatement pstmt = con.prepareStateme
Registrazione.java
:
public String visualizzaimg() throws SQLException, IOException {
Connessione(); // DB connection method
PreparedStatement pstmt = con.prepareStatement("SELECT Immagine FROM Utenti WHERE Username = ?");
pstmt.setString(1,username);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
fin = rs.getBinaryStream("Immagine");
byte[] b = new byte[fin.available()];
fin.read(b);
}
return "success";
}
这是我的struts.xml
文件:
<action name="visualizzaimg" class="Model.Registrazione" method="visualizzaimg">
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">fin</param>
<param name="contentDisposition">attachment;filename=${fileName}</param> /* Not sure if i've understood what i have to put here.. */
<param name="bufferSize">1024</param>
</result>
</action>
关键是将url写入
标记。url应该映射一个将流数据传输到响应的操作
现在配置结果
private InputStream inputStream;
public ImputStream getInputStream(){
return inputStream;
}
public String visualizzaimg() throws SQLException, IOException {
Connessione(); // DB connection method
PreparedStatement pstmt = con.prepareStatement("SELECT Immagine FROM Utenti WHERE Username = ?");
pstmt.setString(1,username);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
inputStream = rs.getBinaryStream(1);
}
return "success";
}
图像/jpeg
它确实有效!!但你能解释一下吗?为什么要将1放入getBinaryStream<代码>输入流=rs.getBinaryStream(1)因为方法使用类型为int
的列索引参数。。。。您可以在页面上找到参数a从1开始计数。好的,谢谢。是否可以在同一个jsp页面中查看图像?因为当我点击“VisualizeZa”按钮时,它会打开另一个名为“VisualizeZaimg.action”的操作,该操作带有图像,它应该是另一个在结果中返回JSP的操作。
<img src="<s:url action='visualizzaimg'/>">
private InputStream inputStream;
public ImputStream getInputStream(){
return inputStream;
}
public String visualizzaimg() throws SQLException, IOException {
Connessione(); // DB connection method
PreparedStatement pstmt = con.prepareStatement("SELECT Immagine FROM Utenti WHERE Username = ?");
pstmt.setString(1,username);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
inputStream = rs.getBinaryStream(1);
}
return "success";
}
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
</result>