Hi,
Am building an application in struts2 and tiles. My requirement is to
retrieve an image blob from mysql database and display the image in a jsp
using img tag as below..
img src="<s:url action="myAction"/>"
Part of my struts.xml is as below:
<package name="default" extends="struts-default">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
<result-type name="myBytesResult"
class="com.icensa.action.MyBytesResult" ></result-type><br>
</result-types>
<action name="myAction" class="com.icensa.action.MyAction">
<result name="myImageResult" type="myBytesResult" />
</action>
</package>
My MyBytesResult class is:
public class MyBytesResult implements Result {
private static final long serialVersionUID = 1L;
public void execute(ActionInvocation invocation) throws Exception {
MyAction action = (MyAction) invocation.getAction();
HttpServletResponse response =
ServletActionContext.getResponse();
response.setContentType("image/jpeg");
//response.setContentLength(action.getMyContentLength());
response.getOutputStream().write(action.getMyImageInBytes());
response.getOutputStream().flush();
}
}
And MyAction class is:
public class MyAction extends ActionSupport {
private static final long serialVersionUID = 1L;
Blob image = null;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
byte[] imgData = null;
OutputStream o = null;
HttpServletResponse response = ServletActionContext.getResponse();
public String doDefault() {
System.out.println("doDefault()");
try {
Class.forName("com.mysql.jdbc.Driver");
con =
DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","pass");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from books_tb where
category='General' order by publish_date desc");
while (rs.next()) {
image = rs.getBlob(11);
imgData =
image.getBytes(1,(int)image.length());
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return "myImageResult";
}
public byte[] getMyImageInBytes() {
System.out.println("getMyImageInBytes()");
try{
}
catch (Exception e) {
System.out.println(e.getMessage());
}
return imgData;
}
// public String getMyContentType() { }
// public String getMyContentDisposition() {}
// public int getMyContentLength() { }
// public int getMyBufferSize() { }
}
when i run the code the image is not displayed and I get an error saying
No result defined for action com.action.MyAction and result success
In struts.xml is I provide reslut name="success" and the jsp, it does not
throw an error but not displaying the image. However in any case it is not
going to MyAction.java. What could i do to rectify this?
Could provide you with required code if necessary..
Thanks,
Aruna
--
View this message in context:
http://old.nabble.com/Displaying-an-image-in-JSP-in-struts%2Btiles-project-tp27020146p27020146.html
Sent from the Struts - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]