Jumat, 20 Maret 2009

Spring - bagian 1

Spring MVC : Hello World

Spring Servlet Declaration

Declare Spring DispatcherServlet dan map "*.html" URL, dalam WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

<welcome-file-list>
<welcome-file>
jsp/index.jsp
</welcome-file>
</welcome-file-list>

</web-app>


Spring Servlet Configuration

membuat Spring configuration file pada WEB-INF/springmvc-servlet.xml (nama berdasarkan nama servlet di atas):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean name="/hello_world.html" class="springmvc.web.HelloWorldController"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>

</beans>

Map URL /hello_world.html ke Controller HelloWorldController

Controller


buat controller HelloWorldController.java

package springmvc.web;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloWorldController implements Controller {

public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

String aMessage = "Hello World MVC!";

ModelAndView modelAndView = new ModelAndView("hello_world");
modelAndView.addObject("message", aMessage);

return modelAndView;
}
}

Controller ini memanggil tampilan 'hello_world', melalui 'message' (seperti Struts attribute)

View

buat jsp/hello_world.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<p>This is my message: ${message}</p>
</body>
</html>

Menampilkan message attribute yang telah di-set dalam Controller.

diambil dan di terjemahkan dari :
http://maestric.com/en/doc/java/spring/hello_world

Rabu, 18 Maret 2009

Sitemesh - bagian 1

Sitemesh 2.1

Arsitektur Sitemesh di dasarkan pada Filters, yang namanya PageFilter class. Ketika Container menerima request dari sebuah page, maka ia akan meneruskan ke PageFilter yang akan membuat custom response object, untuk mengumpulkan application's response, dan meneruskan ke web application sesuai dengan permintaan. Web application akan menuliskan resource yang diminta dalam custom response object dan akan mengebalikan ke PageFilter.

library sitemesh-2.1.jar

Cara membentuk sitemesh :
1. setting web.xml
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>
com.opensymphony.module.sitemesh.filter.PageFilter
</filter-class>
<init-param>

<param-name>debug.pagewriter</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>

<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


2. buat decorators.xml dalam folder WEB-INF
<decorators defaultdir="/decorators">
<!-- Decorator for pages which need Sidemenu -->
<decorator name="sidemenu" page="sidemenu.jsp">
<pattern>/home.jsp</pattern>
</decorator>

<!-- Decorator for pages which need header and footer -->
<decorator name="headerfooter" page="headerfooter.jsp">
<pattern>/help.jsp</pattern>
</decorator>
</decorators>


3. buat headerfooter.jsp dalam folder WebContent/decorators
<%@ taglib
uri="http://www.opensymphony.com/sitemesh/decorator"
prefix="decorator" %>
<html>
<head>
<title>
My Site - <decorator:title default="Welcome!" />
</title>
<decorator:head />
</head>
<body>
<table>
<tr>
<td>
<H1>
SiteMesh Corporation
<H1>
</td>
</tr>
<tr>
<td><decorator:body /></td>
</tr>
<tr>
<td> SiteMesh copyright</td>
</tr>
</table>
</body>
</html>


4. buat help.jsp dalam folder WebContent
<HTML>
<HEAD>
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"
%>
<TITLE>Help Page</TITLE>
</HEAD>
<BODY>
Help Page
</BODY>
</HTML>


dan hasil akhirnya adalah



hasil awal headerfooter.jsp


isi folder sitemesh


diambil dari : http://www.onjava.com/pub/a/onjava/2004/09/22/sitemesh.html