Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

« Newer Snippets
Older Snippets »
14 total  XML / RSS feed 

Make your JSP an XHTML

By default, a JSP file won't be considered as an XHTML stream by the web browser. This will make things such as XForms not being rendered since the browser XForms plugins/addons render Xforms only for XHTML pages. To make a JSP file as XHTML, put this at the beginning of the JSP file

<?xml version="1.0" encoding="utf-8"?>
<% response.setContentType("application/xhtml+xml"); %>


Note that the XML declaration has to be in the first line for a valid XHTML. Of course, after doing this, you need to make all your tags valid XML in your JSP as well.

How to use JSTL fmt:message and resource bundle

To use JSTL fmt:message tags with a message bundle, there are two ways.

First, if there is only one properties file, use, the following code in web.xml file.

  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContextparam-name>
    class.path.to.your.resources.bundle</param-value>
  context-param>


Use in the JSP.

Second, if there are multiple properties files, and there are different locales, use
<fmt:setBundle basename="class.path.to.your.resources.bundle"/>

before

Or you can write

<fmt:bundle basename="class.path.to.your.resource.bundle">
  <fmt:message key="your.message.key"/>
fmt:bundle>

Ver los componentes de una clase

Para ver los componentes de una clase

Class.getDeclaredFields(class)
Class.getDeclaredConstructors(class)
Class.getDeclaredMethods(class)

Find Out what columns are in your result set

// assumes your RecordSet is named rs

                ResultSetMetaData md = rs.getMetaData();
                Logger.debug("Col count is " + md.getColumnCount());
                for(int i=1; i < (md.getColumnCount() +1) ; i++) {
                        Logger.debug("Column name is " + i +" "+ md.getColumnName(i));
                }
                
                

IdGenerator in java

// IdGenerator

public class IdGenerator {
        
        private long maxId; 
        
        public IdGenerator(long start) {
                maxId = start;
        }
        
        public long getNextId () {
                return ++maxId;
        }

} // IdGenerator

Utilização de arquivo temporario em java

Gerar um arquivo temporario com extensao definida e retornar sua localização e nome, o prefixo para o nome do arquivo é temp.
retorno = null caso nao consiga criar o arquivo.
A criação será no local default da JVM.

  public String getTemp(String extension) {
    File f = null;
    try {
      if (extension == null) extension = ".tmp";
      f = File.createTempFile("temp", extension);
      FileOutputStream fi = new FileOutputStream(f);
      // salvo o arquivo recebido
      fi.write(getListFile().getBytes());
      fi.flush();
      fi.close();
      return f.getAbsolutePath();
    }
    catch (IOException e) {
      return null;
    }
  }

Java - Create thumbnail

// description of your code here
Used to create a thumbnail of an image

        private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)
                throws InterruptedException, FileNotFoundException, IOException
        {
                // load image from filename
                Image image = Toolkit.getDefaultToolkit().getImage(filename);
                MediaTracker mediaTracker = new MediaTracker(new Container());
                mediaTracker.addImage(image, 0);
                mediaTracker.waitForID(0);
                // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());
                
                // determine thumbnail size from WIDTH and HEIGHT
                double thumbRatio = (double)thumbWidth / (double)thumbHeight;
                int imageWidth = image.getWidth(null);
                int imageHeight = image.getHeight(null);
                double imageRatio = (double)imageWidth / (double)imageHeight;
                if (thumbRatio < imageRatio) {
                        thumbHeight = (int)(thumbWidth / imageRatio);
                } else {
                        thumbWidth = (int)(thumbHeight * imageRatio);
                }
                
                // draw original image to thumbnail image object and
                // scale it to the new size on-the-fly
                BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
                Graphics2D graphics2D = thumbImage.createGraphics();
                graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
                graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
                
                // save thumbnail image to outFilename
                BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
                JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
                quality = Math.max(0, Math.min(quality, 100));
                param.setQuality((float)quality / 100.0f, false);
                encoder.setJPEGEncodeParam(param);
                encoder.encode(thumbImage);
                out.close();
        }

Use SVN, Ant and Tomcat in XCode

I found Tim Fanelli's Blog ( http://www.timfanelli.com/cgi-bin/pyblosxom.cgi/j2ee/ ) entry quite helpful

In xcode, create a new empty project with the same dir any sources were checked out from.

Name the project with the same name used as the SVN module. NOTE: the .xcodeproj file should end up in the same directory as your build.xml file.

From the finder, dragged the src/ directory into the top level project name item in the project window.

Removed any unwanted items from the folder hierarchy now in xcode. For example, remove all generated build .jar files.

Project -> New Target. Chose 'Shell Script Target'.

In the new Target, double clicked on "Run Script". Under the "General" tab, entered, "/usr/bin/ant;"

Project -> New Build Phase -> New Copy Files Build Phase

Control + Click "Copy Files" (or right click if you have Mighty Mouse)

Add "Empty File in Project". Choose the dist/ directory. Create a file matching the output from your Ant build e.g. Project.war

Double click on the "Copy Files" phase. Type the absolute path to your tomcat deployment directory.

Project -> New Custom Executable. Enter "Tomcat" and make the path "/usr/bin/java".

Select the Arguments Tab enter:

-classpath /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/commons-logging-api.jar
-Dcatalina.home=/opt/tomcat
-Xmx128m
-Xms64m
-Xincgc
-Djava.awt.headless=true
org.apache.catalina.startup.Bootstrap -debug start


Under the Debugging tab, choose "Java Debugger".

JMenu that switches between Swing LookAndFeel themes.

// This creates a tiny JFrame with a menu, which changes the LookAndFeel.

package looksAndFeels;

import javax.swing.*;
import javax.swing.UIManager.*;
import java.awt.event.*;

public class ThemeChanger extends JFrame {

        ThemeChanger __instance;
        
        public ThemeChanger() {
                super("Swing Theme Changer");
                __instance = this;
                this.setSize(400, 200);
                
                JMenuBar appMenu = new JMenuBar();
                appMenu.add(makeLaFMenu());
                this.setJMenuBar(appMenu);
                
                this.setVisible(true);
        }
        
        private JMenu makeLaFMenu() {
                JMenuItem tempItem;
                JMenu lafMenu = new JMenu("Supported Themes");
                LookAndFeelInfo[] supportedLAFs = UIManager.getInstalledLookAndFeels();
                for (int ii = 0; ii < supportedLAFs.length; ii++) {
                        LookAndFeelInfo currentLAF = supportedLAFs[ii];
                        tempItem = new JMenuItem(currentLAF.getName());
                        tempItem.setActionCommand(currentLAF.getClassName());
                        tempItem.addActionListener(new myListener());
                        lafMenu.add(tempItem);
                }
                
                return lafMenu;
        }
        
        class myListener implements ActionListener {

                public void actionPerformed(ActionEvent event) {
                        try {
                                UIManager.setLookAndFeel(event.getActionCommand());
                        } catch (Exception e) {
                                ; // No exceptions will happen (barring some unforeseen catastrophe),
                                  // because we only grabbed the supported LaF's.
                        }
                        SwingUtilities.updateComponentTreeUI(__instance);
                }
                
        }
        
        public static void main(String[] args) {
                new ThemeChanger();
        }

}

Draw Circle

draws a circle with center coorinates (x,y) and radius radius

private void drawCircle(int x, int y, int radius, Graphics g){
        g.drawOval(x - radius, y - radius, radius*2, radius*2);
}

Walk list of HTTP Request Param names and values

This is a quick and dirty way to log the request parameters, when using a servlet.

                Enumeration db = request.getParameterNames();
                while (db.hasMoreElements()) {
                        String foo = (String)db.nextElement();
                        Logger.debug("***********************************");
                        Logger.debug("***" + foo + " : " + request.getParameter(foo) + "***");
                        Logger.debug("***********************************");
                }

Ant OS specific switch

<property file="${antutil.includes}/${os.name}-${os.arch}.properties" />


Use to include properties per OS

Print Hello

System.out.println("Hello");

Use Sun Java in Ubuntu Breezy

Download the binary installer from Sun.

Make sure the universe and multiverse repositories are enabled.

sudo apt-get install fakeroot java-package java-common

fakeroot make-jpkg --full-name "My Name" --email "[email protected]"

sudo dpkg -i sun-j2re1.5_1.5.0+update05_i386.deb

sudo update-alternatives --config java
« Newer Snippets
Older Snippets »
14 total  XML / RSS feed