Saturday, July 26, 2014

Loading image bypassing browser cache

In my JSP page I was using an img tag to load an image in my view page.

Problem :
<html:img page="/myAction.do?id=${aForm.id}"   width="400" height="550" style="border:none" /> I was facing problems to load the latest image using above image tag , the browser was retrieving the cached image to me not the latest Below are the steps I was doing 
  1. update the image from my update page
  2. show the view page to the user , showing him the current image , but current image was not shown to the user instead the last loaded page from the cahce was being loded by browser.
I had the related no-cache meta tag in my page still I was facing this problem.


Solution

Apparently I found that it was the imag tag which was causing problem , since the browser was getitng the same link with no change it was loading the image from cahce , the only solution is to have unique link to load that URL by adding a uniquie value at the end of the link t load image , so I started appending the time stamo with the link and now it's working fine I can always see the lates image now , below is what I did in my JSP

<!-- Define date variable-->
<jsp:useBean id="current" class="java.util.Date" />
 
<!-- Append time at the end of image page -->
           <html:img page="/myAction.do?id=${aForm.id}"}&a=${current.time}"   width="400" height="550" style="border:none" />
 
This will always make it a unique URL for browser hence it will not load the image from cache.

Monday, July 21, 2014

Struts 1.1 forward to another action with additional paramenters

Yeah yeah I know you must be smiling by looking at this blog post in 2014 and thinking who still posts about STRUTS :).

Well it's a person who is supporting an applicaiton built on Struts ;).

Problem Statement

Ok so I had this problem where I wanted to forward to another Action from my current action and also I wanted to send some extra attributes

Solution

In my Action class I had to create my own ActionForward Object like below and return it



ActionForward actionRedirect = new ActionForward("/pages/myAction.do"+ "?reportType=someReport&someValue="+myBean.getSomeValue(), true);

return actionRedirect; Now I am able to forward to myAction and the form bean in populated with the values I am sending as request parameters.

Wednesday, July 9, 2014

ORA-01858: a non-numeric character was found where a numeric was expected

I was getting this problesm while I was trying to debug PLSQL code written by someone else . And I found the sql statement like below where he was trying to apply to_date function on a date type column ,

The format of MY_DATE_COLUMN is like "09-JULY-2014" , so when to-date function was applied on this date format to convert it to MM/DD/YYYY oracle was throwing this error

SELECT TO_DATE(MY_DATE_COLUMN, 'MM/DD/YYYY') - INTERVAL '5' YEAR FROM DUAL

The solutionw was simple , to get rid of the to_date function , so the below query is working fine for me now.

SELECT MY_DATE_COLUMN - INTERVAL '5' YEAR FROM DUAL



Wednesday, July 2, 2014

Using Oracle PL/SQL how do I know to which database instance I am currently connected

Below query will give you the name of the instance you are currently connected with

SELECT sys_context('USERENV','DB_NAME') AS Instance FROM dual;

 Also we can use the below query to use the database name


select name from v$database