json dan xml
JSON (JavaScript Object Notation) adalah basis teks yang ringan dan di design untuk pertukaran data dan mudah untuk dibaca oleh manusia. JSON berasal dari bahasa pemrograman JavaScript yang mempresentasikan struktur data sederhana dan array yang disebut objek. JSON merupakan format teks yang benar-benar bahasa independen tetapi menggunakan konvensi yang familiar bagi programmer selain java.
Internet Media type untuk JSON adalah application/json, sedangkan nama ekstensinya adalah .json .Contoh json:
"item":{"id":ff2392mf229200001"code": "3002","name": "Gallardo","description":-}
XML (Extensible Markup Language) adalah bahasa markup yang didesain untuk mampu menyimpan data secara ringkas dan mudah di atur. Internet Media Type untuk XML adalah application/xhtml+xml dan ber ekstensi .xml.
Perbedaan JSON dan XML terletak pada ukuran filenya, dimana ukuran file XML lebih besar sekitar 30% dari JSON, tetapi jika menggunakan attribute ukuran file antara JSON dan XML hampir samacontoh xml menggunakan element:
<items><code>457</code><description>-</description><id>4028818d29e72e9d0129e73135000001</id><name>Gallardo</name><price>3000</price></items>
contoh xml menggunakan attribute :
<items><itemcode="12"description="-"id="4028818f29bf477d0129bf4a6dd90001"name="Nokia1600"price="900000"/></items>
html5 video+css (chrome)
Berikut adalah bentuk video yang tak biasa @.@. Silahkan mencoba ?..
- tag video
<video id="video-css">
<source src="video.mp4" type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"">
</video>
- css style
#video-css {-moz-transition: all 0.3s ease-out; /* FF3.7+ */
-o-transition: all 0.3s ease-out; /* Opera 10.5 */
-webkit-transition: all 0.3s ease-out; /* Saf3.2+, Chrome */
}
#video-css.enhanced {
border: 1px solid white;
-moz-box-shadow: 0px 0px 4px #ffffff; /* FF3.5+ */
-webkit-box-shadow: 5px 44px 28px #333; /* Saf3.0+, Chrome */
box-shadow: 0px 0px 4px #ffffff; /* Opera 10.5, IE 9.0 */
-moz-transform: translate(0, -10px); /* FF3.5+ */
-o-transform: translate(0, -10px); /* Opera 10.5 */
-webkit-transform: translate(0, -10px); /* Saf3.1+, Chrome */
}
- javascript / eventlistener
<script>
(function() {var video_css = document.querySelector('#video-css');
video_css.addEventListener('mouseover', function() {this.className = 'enhanced';this.play();}, false);video_css.addEventListener('mouseout', function() {this.pause();this.className = '';}, false);}
)();
</script>
Good Luck :)
hibernate configuration in spring mvc
Berikut adalah konfigurasi hibernate pada spring mvc versi annotaion:
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><context:property-placeholder location="classpath:hsa.properties" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${hibernate.connection.driver_class}"
p:url="${hibernate.connection.url}"
p:username="${hibernate.connection.username}"
p:password="${hibernate.connection.password}" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
p:dataSource-ref="dataSource">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager"
p:sessionFactory-ref="sessionFactory" />
<tx:annotation-driven/>
</beans>
- hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/smvc</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">vick</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">false</property>
</session-factory>
</hibernate-configuration>
- hsa.properties
# To change this template, choose Tools | Templates
# and open the template in the editor.
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/smvc
hibernate.connection.username =root
hibernate.connection.password =vick
berikut untuk melihat apakah koneksi hibernate yg telah anda buat berhasil atau tidak?
- TestConnection.java
import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;import org.springframework.context.support.AbstractApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestConnection {
public static void main(String [] args) {
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
DataSource dataSource = (DataSource) ctx.getBean("dataSource");Configuration cfg = new AnnotationConfiguration().configure("hibernate.cfg.xml").setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect");
try{Connection conn = dataSource.getConnection();
new SchemaExport(cfg, conn).create(true, true);
System.out.println("Koneksi berhasil");conn.close();
}catch(SQLException e){System.out.println("Koneksi gagal");}
ctx.registerShutdownHook();
}
}
- berikut adalah hasilnya :D
06 Okt 10 23:24:17 org.springframework.context.support.AbstractApplicationContext prepareRefreshINFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@dd5b: startup date [Wed Oct 06 23:24:17 ICT 2010]; root of context hierarchy06 Okt 10 23:24:17 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitionsINFO: Loading XML bean definitions from class path resource [applicationContext.xml]06 Okt 10 23:24:17 org.springframework.core.io.support.PropertiesLoaderSupport loadPropertiesINFO: Loading properties file from class path resource [hsa.properties]06 Okt 10 23:24:17 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletonsINFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@a352a5: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor]; root of factory hierarchy06 Okt 10 23:24:17 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassNameINFO: Loaded JDBC driver: com.mysql.jdbc.Driver0 [main] INFO org.hibernate.cfg.annotations.Version - Hibernate Annotations 3.4.0.GA16 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.1.GA16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found32 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist32 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling110 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.1.0.GA110 [main] INFO org.hibernate.cfg.Configuration - configuring from url: file:/D:/workspace/blog/springmaven/target/classes/hibernate.cfg.xml188 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null266 [main] INFO org.hibernate.cfg.AnnotationConfiguration - Hibernate Validator not found: ignoring06 Okt 10 23:24:18 org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactoryINFO: Building new Hibernate SessionFactory282 [main] INFO org.hibernate.connection.ConnectionProviderFactory - Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider688 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: MySQL, version: 5.1.41688 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.12 ( Revision: ${bzr.revision-id} )703 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLInnoDBDialect750 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory750 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)750 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15750 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled750 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto750 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2750 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1750 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled750 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory750 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using create webapp spring maven
>
- Langkah pertama create new maven project
- ubah pom.xml sehingga menjadi seperti ini:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.mervpolis.vick</groupId><artifactId>springmaven</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>springmaven Maven Webapp</name><url>http://maven.apache.org</url><dependencies><!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- Spring dependencies --><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>3.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>3.0.2.RELEASE</version></dependency><!-- Velocity viewer --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.6.3</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency></dependencies><build><finalName>springmaven</finalName></build></project>- ubah web.xml sehinggal seperti berikut:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"><display-name>Archetype Created Web Application</display-name><context-param><param-name>contextConfigLocation</param-name><param-value>WEB-INF/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/*</url-pattern></servlet-mapping></web-app>- buat dispatcher-servlet.xml pada WEB-INF
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"<context:component-scan base-package="com.mervpolis.vick.springmaven.controller" /><!-- Velocity --><bean id="velocityConfig"class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"p:resourceLoaderPath="/WEB-INF/velocity/"/><bean id="viewResolver"class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"p:cache="true"p:prefix=""p:suffix=".xhtml"/></beans>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><context:component-scan base-package="com.mervpolis.vick.springmaven.controller" /></beans>
/****/package com.mervpolis.vick.springmaven.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;/*** @author vick**/@Controllerpublic class Index {@RequestMapping(value="/",method=RequestMethod.GET)public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {return new ModelAndView("index");}}
<html><body><h1>Spring Webapp</h1></body></html>
Create new maven project
- create new maven project


- Edit pom.xml sebagai berikut:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mervpolis.vick</groupId>
<artifactId>simplewebapp</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>simplewebapp Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>simplewebapp</finalName>
</build>
</project>
- web.xml
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
- run on server
- hasil
Element baru pada html 5
Internet telah banyak berkembang sejak kemunculan html 4.01. Dengan munculnya html 5 yang tentunya merupakan upgrade dari html 4.01 yang muncul dengan element baru.
Element-element baru pada html 5 :
- Markup Elements
| Tag | Description |
| <article> | Untuk konten eksternal, seperti teks dari artikel-berita, blog, forum, atau konten lain dari sumber eksternal |
| <aside> | Untuk konten selain konten itu ditempatkan di samping konten yang masuk harus berkaitan dengan isi sekitarnya |
| <command> | Sebuah tombol, atau radiobutton, atau sebuah kotak centang |
| <details> | Untuk rincian menggambarkan tentang sebuah dokumen, atau bagian dari dokumen |
| <summary> | Sebuah keterangan, atau ringkasan, dalam rincian elemen |
| <figure> | Untuk pengelompokan bagian dari konten berdiri sendiri, bisa video |
| <figcaption> | Keterangan dari tokoh bagian |
| <footer> | Untuk footer dari dokumen atau bagian, dapat meliputi nama penulis, tanggal dokumen, informasi kontak, atau informasi hak cipta |
| <header> | Untuk penerapan suatu dokumen atau bagian, dapat mencakup navigasi |
| <hgroup> | Untuk bagian dari pos, menggunakan <h1> untuk <h6>, di mana yang terbesar adalah pos utama bagian tersebut, dan yang lainnya sub-judul |
| <mark> | Untuk teks yang harus disorot |
| <meter> | Untuk pengukuran, digunakan hanya jika nilai-nilai maksimum dan minimum diketahui |
| <nav> | Untuk bagian navigasi |
| <progress> | Keadaan pekerjaan berlangsung |
| <ruby> | Untuk penjelasan ruby (catatan Cina atau karakter) |
| <rt> | Untuk penjelasan tentang penjelasan ruby |
| <rp> | Apa untuk menunjukkan browser yang tidak mendukung elemen ruby |
| <section> | Untuk bagian dalam dokumen. Seperti bab, header, footer, atau bagian lain dari dokumen |
| <time> | Untuk menentukan waktu atau tanggal, atau keduanya |
- Media Elements
| Tag | Description |
| <audio> | Untuk konten multimedia, suara, musik atau audio lain aliran |
| <video> | Untuk konten video, misalnya klip video atau video lainnya stream |
| <source> | Untuk sumber daya media untuk elemen media, yang didefinisikan di dalam video atau audio elemen |
| <embed> | Untuk konten tertanam, seperti plug-in |
contoh:
<html><head><title>Media Elements</title></head><body><video width="320" height="240" controls="controls"><source src=?video.mp4" type="video/mp4" /></video><audio controls="controls"><source src="audio.ogg" type="audio/ogg" /></audio></body></html>
- The Canvas Element :menggunakan javascript untuk membuat gambar pada halaman web.
| Tag | Description |
| <canvas> | Untuk membuat grafik dengan script |
contoh:
<canvas id="canvas" width="200" height="100" style="border:1px solid #c3c3c3;"></canvas><script type="text/javascript">var c=document.getElementById("canvas");var cxt=c.getContext("2d");cxt.fillStyle="blue";cxt.beginPath();cxt.fillRect(0,0,150,75);cxt.closePath();cxt.fill();</script>
- Form Element
| Tag | Description |
| <datalist> | Daftar pilihan untuk nilai input |
| <keygen> | Hasilkan kunci untuk mengotentikasi pengguna |
| <output> | Untuk berbagai jenis output, seperti output yang ditulis oleh script |
- Input Type Attribute Values
| Type | Description |
| tel | Nilai input nomor telepon |
| search | Field input adalah field pencarian |
| url | Nilai input URL |
| Nilai input satu atau lebih alamat email | |
| datetime | Nilai input tanggal dan / atau waktu |
| date | Nilai input tanggal |
| month | Nilai input bulan |
| week | Nilai input seminggu |
| time | Nilai input waktu jenis |
| datetime-local | Nilai input adalah tanggal lokal / waktu |
| number | Nilai input nomor |
| range | Nilai input nomor dalam kisaran tertentu |
| color | Nilai input warna heksadesimal, seperti # FF8800 |
Membuat table menggunakan tag <div> dan CSS
Sebelum ada teknologi CSS( Cascading Style Sheets ), kita sering membuat tabel menggunakan html tag <table> </table>, setelah munculnya CSS kita bisa membuat tabel menggunakan html tag <div> yang dikombinasikan dengan css. Disini html tag <div> berfungsi seperti html tag <tr> dan <td> pada <table>.
- berikut contoh tabel menggunakan html tag <table> </table>
tabel.html
<!--
<html>
<body><table align="center" cellspacing="0" cellpadding="0" width="300px"><tr bgcolor="red"><td width="100px">No</td><td width="100px">Nama</td><td width="100px">Alamat</td></tr><tr><td>1</td><td>A</td><td>AA</td></td><tr><td>2</td><td>B</td><td>BB</td></td><tr><td>3</td><td>C</td><td>CC</td></td></table></body></html>
-->
- berikut contoh tabel menggunakan <div> dan css
tablediv.html
<!--
<html>
<head><link href="tablediv.css" rel="stylesheet" type="text/css" /></head><body><div id="container"><div id="header"><ul><li>No</li><li>Nama</li><li>Alamat</li></ul></div><div id="content"><ul><li>1</li><li>A</li><li>AA</li></ul><ul><li>2</li><li>B</li><li>BB</li></ul><ul><li>3</li><li>C</li><li>CC</li></ul></div></div></body></html>
-->
tablediv.css
#container{margin: 0 auto;width: 300px;background: #fff;}#header{background: red;padding: 0;}#header ul{margin: 0;padding: 0;}#header ul li{list-style-type: none;display: inline;padding: 0 62px 0 0;}#content{background: white;padding: 0;}#content ul{margin: 0;padding: 0;}#content ul li{list-style-type: none;display: inline;padding: 0 80px 0 0;}
Hampir gak ada bedanya kan. :D
Keunggulan menggunakan hmtl tag <div> dan CSS adalah web akan lebih ringan dan lebih dinamis.
Tapi lebih rumit.
- Contoh site menggunakan CSS dan <div>
index.html
<!--
<html>
<head><title>table div</title><link href="div.css" rel="stylesheet" type="text/css" /></head><body><div id="container"><div id="header"><h1>vick</h1></div><div id="navigation"><ul><li><a href="#1">All</a></li><li><a href="#2">Java</a></li><li><a href="#3">General</a></li><li><a href="#4">Music</a></li></ul></div><div id="content-container"><div id="content"><h2>Page</h2><p>page</p></div><div id="aside"><h3>Profile</h3><p>profile</p></div><div id="aside"><h3>Links</h3><p>link</p></div></div><div id="footer">footer</div></div></body></html>
-->
div.css
#container{margin: 0 auto;width: 900px;background: #fff;}#header{background: #ccc;padding: 20px;}#header h1 { margin: 0; }#navigation{float: left;width: 900px;background: black;}#navigation ul{margin: 0;padding: 0;}#navigation ul li{list-style-type: none;display: inline;}#navigation li a{display: block;float: left;padding: 5px 10px;color: #fff;text-decoration: none;border-right: 1px solid #fff;}#navigation li a:hover { background: red; }#content-container{float: left;width: 900px;background: #fff;}#content{clear: left;float: left;width: 560px;padding: 20px 0;margin: 0 0 0 30px;display: inline;}
Hasil
Selamat Mencoba
validasi pada spring mvc
Tentunya dalam membuat sebuah apliksai web, kita tidak akan jauh dari yang namanya validasi.
Berikut ini, saya akan menjelaskan cara menggunakan validator pada spring mvc.
Dalam validasi pada spring mvc terdapat 2 method yang di gunakan yaitu:
- supports(Class) ?> Digunakan untuk mengenali class mana yang akan di validasi
- validate(Object, org.springframework.validation.Errors) ?> memvalidasi objek yang diberikan dan jika terjadi kesalahan maka mendaftarkan objek dengan diberikan errors objek
- ItemValidator.java
1: public class ItemValidator implements Validator{
2:
3: //Class yang akan di validasi4: public boolean supports(Class<?> clazz){
5: return Item.class.equals(clazz);
6: }
7:
8: public void validate(Object val, Errors errors){
9: ValidationUtils.rejectIfEmpty(errors, "code", "code.empty");
10: ValidationUtils.rejectIfEmpty(errors, "name", "name.empty");
11: ValidationUtils.rejectIfEmpty(errors, "price", "price.empty");
12: }
13:
14: }
static rejectIfEmpty(??) adalah method dari class ValidationUtils yang digunakan untuk me-reject property ?code? / property ?name? / property ?price? jika bernilai null atau string kosong.
- Buat file ?> messages_en_US.properties ?> simpan pada classpath
1: code.empty = Code should not empty2: name.empty = Name should not empty3: price.empty = price should not empty or zero
- untuk view nya :
1: <?xml version="1.0" encoding="UTF-8"?>2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">3: <html xmlns="http://www.w3.org/1999/xhtml">4: <head>5: <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />6: <title>Item</title>7: <!--script type="text/javascript">8: function search() {9: var input = document.getElementsByName("name").value='';10: }11: </script-->12: </head>13: <body>14: <form id="item" action="" method="post" >15: <table bgcolor="#000000" border="0" cellpadding="3" cellspacing="1" align="center">16: <tr bgcolor="#d0dcff">17: <td colspan="2">18: <strong>Item</strong>19: </td>20: </tr>21: <tr bgcolor="#ffffff">22: <td>Code</td>23: <td>24: <input type="text" name="code" id="code" value="$!item.code" maxlength="20" tabindex="1"/>25: #springBind("item.code")26: #springShowErrors("<br/>" "")27: </td>28:29: </tr>30: <tr bgcolor="#ffffff">31: <td>Name</td>32: <td>33: <input type="text" name="name" id="name" value="$!item.name" tabindex="2" maxlength="20"/>34: #springBind("item.name")35: #springShowErrors("<br/>" "")36: </td>37: </tr>38: <tr bgcolor="#ffffff">39: <td>Price</td>40: <td>41: <input type="text" name="price" value="$!item.price" id="price" tabindex="3" maxlength="20"/>42: #springBind("item.price")43: #springShowErrors("<br/>" "")44: </td>45: </tr>46: <tr bgcolor="#ffffff">47: <td>Description</td>48: <td><textarea name="description" id="description" tabindex="5" class="text" maxlength="100">$!item.description</textarea></td>49: </tr>50: <tr bgcolor="#ffffff">51: <td colspan="2">52: <input type="submit" value="Submit" tabindex="20"/>53: <input type="reset" tabindex="21"/>54: </td>55: </tr>56: </table>57: </form>58: <br/><br/>59:60: </body>61: </html>
#springBind(?.) ?> digunakan untuk mengambil object errors yang sudah terdaftar
- Contoh:
Selamat mencoba :D
Spring 3 mvc rest
Kali ini saya akan memberikan contoh implementasi rest pada spring 3 mvc .
- Library yang di gunakan :
- aopalliance-1.0.jar
- commons-logging-1.1.1.jar
- servlet-api-2.5.jar
- org.springframework.asm-3.0.0.RELEASE.jar
- org.springframework.beans-3.0.0.RELEASE.jar
- org.springframework.context-3.0.0.RELEASE.jar
- org.springframework.context.support-3.0.0.RELEASE.jar
- org.springframework.core-3.0.0.RELEASE.jar
- org.springframework.expression-3.0.0.RELEASE.jar
- org.springframework.web-3.0.0.RELEASE.jar
- org.springframework.web.servlet-3.0.0.RELEASE.jar
- hibernate-core-3.3.1.GA.jar
- hibernate-search-3.1.0.GA.jar
- hibernate-commons-annotations-3.1.0.GA.jar
- hibernate-annotations-.3.4.0.GA.jar
- Struktur project
- Item.java
1: package org.blueoxygen.cimande2.entity;2:
3: import java.io.Serializable;4: import javax.persistence.Column;5: import javax.persistence.Entity;6: import javax.persistence.GeneratedValue;7: import javax.persistence.Id;8: import javax.persistence.Table;9: import org.hibernate.annotations.GenericGenerator;10:
11: /**12: *
13: * @author vick
14: */
15: @Entity
16: @Table
17: public class Item implements Serializable{
18:
19: @Id
20: @GeneratedValue(generator="i")21: @GenericGenerator(name="i", strategy="uuid")
22: @Column
23: private String id;24:
25: @Column
26: private String code;27:
28: @Column
29: private String name;30:
31: @Column
32: private Long price;33:
34: @Column
35: private String description;36:
37: //Getter and Setter
- BaseDaoHibernate.java
1: package org.blueoxygen.cimande2.dao.base;2:
3: import java.lang.reflect.ParameterizedType;4: import java.util.List;5:
6: import org.hibernate.SessionFactory;7: import org.springframework.beans.factory.annotation.Autowired;8:
9:
10: /**11: *
12: * @author vick
13: */
14: public class BaseDaoHibernate<T> {
15:
16: @SuppressWarnings("unchecked")17: protected Class domainClass;18:
19: @Autowired protected SessionFactory sessionFactory;20:
21: @SuppressWarnings("unchecked")22: public BaseDaoHibernate(){23: this.domainClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];24: }
25:
26: @SuppressWarnings("unchecked")27: public T findById(String id){28: if(id.equalsIgnoreCase("")) return null;
29: final T domain = (T) sessionFactory.getCurrentSession().get(domainClass, id);30: return domain;31: }
32:
33: public T save(T domain){34: sessionFactory.getCurrentSession().saveOrUpdate(domain);
35: return domain;36: }
37:
38: public void delete(T domain){
39: sessionFactory.getCurrentSession().delete(domain);
40: }
41:
42: @SuppressWarnings("unchecked")43: public List<T> findAll(Integer startIndex, Integer pageSize){44: return sessionFactory.getCurrentSession().createQuery("from "+domainClass.getName()).setFirstResult(startIndex).setMaxResults(pageSize).list();
45: }
46:
47: @SuppressWarnings("unchecked")48: public List<T> findAll(){49: return sessionFactory.getCurrentSession().createQuery("from "+domainClass.getName()).list();
50: }
51: }
untuku konfigurasi hibernate ada di blog sebelah :D link?> spring hibernate
- ItemDao.java
1: package org.blueoxygen.cimande2.dao;2:
3:
4: import org.blueoxygen.cimande2.dao.base.BaseDaoHibernate;5: import org.blueoxygen.cimande2.entity.Item;6: import org.springframework.stereotype.Repository;7:
8: /**9: *
10: * @author vick
11: */
12: @Repository
13: public class ItemDao extends BaseDaoHibernate<Item>{
14:
15: }
- ItemService.java
1: package org.blueoxygen.cimande2.service;2:
3: import java.util.List;4:
5: import org.blueoxygen.cimande2.entity.Item;6:
7:
8: /**9: *
10: * @author vick
11: */
12: public interface ItemService {
13:
14: void save(Item item);15: void delete(Item item);16: Item getItem(String id);
17:
18: }
- ItemServiceImpl.java
1: import org.blueoxygen.cimande2.dao.ItemDao;2: import org.blueoxygen.cimande2.entity.Item;3: import org.blueoxygen.cimande2.service.ItemService;4: import org.springframework.beans.factory.annotation.Autowired;5: import org.springframework.stereotype.Service;6: import org.springframework.transaction.annotation.Transactional;7:
8: /**9: *
10: * @author vick
11: */
12: @Service("itemService")13: @Transactional(readOnly = true)14: public class ItemServiceImpl implements ItemService {
15:
16: @Autowired
17: private ItemDao itemDao;18:
19: @Transactional
20: public void save(Item item) {
21: itemDao.save(item);
22: }
23:
24: @Transactional
25: public void delete(Item item) {
26: itemDao.delete(item);
27: }
28:
29: public Item getItem(String id) {30: return itemDao.findById(id);31: }
32:
33: }
- ItemController.java
1: package org.blueoxygen.cimande2.controller;2:
3:
4: import javax.servlet.http.HttpServletRequest;5: import javax.servlet.http.HttpServletResponse;6:
7: import org.blueoxygen.cimande2.service.ItemService;8: import org.blueoxygen.cimande2.ui.form.ItemForm;9: import org.blueoxygen.cimande2.ui.validator.ItemValidator;10: import org.springframework.beans.factory.annotation.Autowired;11: import org.springframework.stereotype.Controller;12: import org.springframework.validation.BindingResult;13: import org.springframework.web.bind.annotation.ModelAttribute;14: import org.springframework.web.bind.annotation.RequestMapping;15: import org.springframework.web.bind.annotation.RequestMethod;16: import org.springframework.web.servlet.ModelAndView;17: import org.springframework.web.servlet.view.RedirectView;18:
19: /**20: *
21: * @author vick
22: */
23: @Controller
24: public class ItemController{
25:
26: @Autowired private ItemService itemService;27: @RequestMapping(value="/item", method=RequestMethod.GET)28: public ModelAndView item(HttpServletRequest request, HttpServletResponse response) throws Exception{
29: ModelAndView mv = new ModelAndView();30: mv.addObject("item", new ItemForm());31: mv.setViewName("item/item-add");32: return mv;33: }
34:
35: @RequestMapping(value="/item", method=RequestMethod.POST)36: public ModelAndView item(HttpServletRequest request, @ModelAttribute("item") ItemForm item, BindingResult bindingResult){
37: new ItemValidator().validate(item, bindingResult);38: if(bindingResult.hasErrors()){39: ModelAndView mv = new ModelAndView();40: mv.addObject("item", item);41: mv.setViewName("item/item-add");42: return mv;43: }else{44: itemService.save(item.getItem());
45: return new ModelAndView(new RedirectView(request.getContextPath()+"/view/item/"+ item.getId()));
46: }
47:
48: }
49: }
- web.xml
1: <?xml version="1.0" encoding="UTF-8"?>
2: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
3: <display-name>rest-springmvc</display-name>
4: <context-param>
5: <param-name>contextConfigLocation</param-name>
6: <param-value>classpath:applicationContext.xml</param-value>
7: </context-param>
8: <listener>
9: <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
10: </listener>
11: <servlet>
12: <servlet-name>dispatcher</servlet-name>
13: <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
14: <load-on-startup>2</load-on-startup>
15: </servlet>
16: <servlet-mapping>
17: <servlet-name>dispatcher</servlet-name>
18: <url-pattern>/*</url-pattern>19: </servlet-mapping>
20: <session-config>
21: <session-timeout>30</session-timeout>
22: </session-config>
23: <welcome-file-list>
24: <welcome-file>index.xhtml</welcome-file>
25: </welcome-file-list>
26: </web-app>
- dispatcher-servlet.xml
1: <?xml version="1.0" encoding="UTF-8"?>
2: <beans xmlns="http://www.springframework.org/schema/beans"3: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"4: xmlns:p="http://www.springframework.org/schema/p"5: xmlns:context="http://www.springframework.org/schema/context"6: xsi:schemaLocation="7: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd8: http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">9: <context:component-scan base-package="org.blueoxygen.cimande2.controller" />
10: <bean id="velocityConfig"11: class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"
12: p:resourceLoaderPath="/WEB-INF/velocity/"/>13: <bean id="viewResolver"14: class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"
15: p:cache="true"16: p:prefix=""
17: p:suffix=".xhtml"/>18: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
19: <property name="maxUploadSize" value="10000000"/>
20: </bean>
21:
22:
23: <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
24: <property name="mediaTypes">25: <map>
26: <entry key="json" value="application/json"/>
27: </map>
28: </property>
29: </bean>
30:
31: <bean id="messageSource"32: class="org.springframework.context.support.ResourceBundleMessageSource"
33: p:basename="messages" />34: </beans>
-
- Berikut adalah contoh implementasi rest pada spring 3 mvc versi saya.
Untuk kurang lebihnya saya mohon maaf dan terimakasih.- Next Week---> validator pada spring 3 mvc rest
JSON in Rest Spring MVC
library json yang di pakai : - jackson-core-asl-1.5.2.jar - jackson-mapper-asl-1.5.2.jar
tambahkan kode dibawah ini pada dispatcher-servlet.xmlhasil:
gampang kan !!! :D Good Luck
Ireport - Membatasi Baris Yang di Print Tiap Halaman
Pada kondisi biasa ireport akan mencetak baris pada halaman pertaman dan bila tidak cukup akan dilanjutkan pada halaman kedua. Hasilnya pasti tidak rapi. Oleh karena itu saya akan menjelaskan cara mengatur jumlah baris tiap halaman.
Pertama tama buat Report Group baru seperti gambar di bawah ini:
Pada Group Criteria isi Group following by expression :
new Integer((int)(($V{REPORT_COUNT}.intValue()-1)/10)) --> 10 adalah batas baris tiap halaman
klik next -> finish (pastikan group header dan footer telah anda check )
check "Start on new page" pada properties group yang telah di buat
ubah band height pada group header dan footer yang dibuat menjadi 0.
hasil:
Good Luck