Recipe 24.11 Formatting Percentages in a Servlet


You want to format numbers as percentages and display them in a servlet.


Use the java.txt.NumberFormat class and its static getPercentInstance( ) method.


Example 24-12 uses the NumberFormat.getPercentInstance( ) method, with the user 's locale as an argument, to get a NumberFormat type for displaying a number as a percentage. The code in Example 24-12 calls the NumberFormat's format( ) method, with a number as an argument.

The format( ) method displays the number 51 as "5100%"; a double type including the decimal point, such as 0.51 produces the intended result (51%).

Example 24-12. Using NumberFormat to display a percentage in a servlet
 package com.jspservletcookbook;  import java.text.NumberFormat; import java.util.Locale;  import java.util.ResourceBundle; import javax.servlet.*; import javax.servlet.http.*;  public class PerLocaleServlet extends HttpServlet {  public void doGet(HttpServletRequest request,   HttpServletResponse response)   throws ServletException, {            //Get the client's Locale  Locale locale = request.getLocale( );  ResourceBundle bundle = ResourceBundle.getBundle(       "i18n.WelcomeBundle",locale);       String welcome =  bundle.getString("Welcome");  NumberFormat nft = NumberFormat.getPercentInstance(locale);       String formatted = nft.format(0.51);  //Display the locale       response.setContentType("text/html"); out = response.getWriter( );       out.println("<html><head><title>"+welcome+"</title></head><body>");              out.println("<h2>"+bundle.getString("Hello") + " " +         bundle.getString("and") + " " +           welcome+"</h2>");                     out.println("Locale: ");       out.println( locale.getLanguage( )+"_"+locale.getCountry( ) );              out.println("<br /><br />");  out.println("NumberFormat.getPercentInstance( ): "+formatted);  out.println("</body></html>");             } //doGet //implement doPost( ) to call doGet( )... } 

Figure 24-7 shows the servlet's output in a browser.

Figure 24-7. The browser displays a percentage for a certain locale

See Also

The Javadoc for the NumberFormat class:; Recipe 24.12 on formatting percentages in a JSP.

Java Servlet & JSP Cookbook
Java Servlet & JSP Cookbook
ISBN: 0596005725
EAN: 2147483647
Year: 2004
Pages: 326

Similar book on Amazon © 2008-2017.
If you may any questions please contact us: