開発メモ

開発用のメモです。

Java

JavaFX Confirm Dialog

FXML

JavaFX でデータピッカー

FXML

Java Swing で DatePicker

package jp.mirageworld.apps.apptest; import java.awt.Color; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.uti…

JPA persistence.xml

<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> </persistence>

java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory

SLFJ4J から LOG4J へ変換する場合は 以下の二つはバージョンをあわせる <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency> </dependencies>

Java Commons DBUtile 基本

import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.ResultS…

javax.swing テーブル+スクロール

JTable table = new JTable(); table.setBorder(new EmptyBorder(1, 1, 1, 1)); DefaultTableModel dm = new DefaultTableModel(new String[] { LABEL_MNG_NO, LABEL_CREATED, LABEL_TRADER, LABEL_HAULER, LABEL_CONSIGNMENT, LABEL_OCCURENCE, LABEL_OCCUR…

Java/Swing テンプレート

import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenu…

Eclipse で テーブル定義書などを作成

ER Master エクリプス アップデートサイト http://ermaster.sourceforge.net/update-site/

各種言語の Hello World

Java class Main { public static void main (String[] args) { System.out.println("Hello World"); } } Perl #!/usr/bin/perl print "Hello World"; PHP

各種言語の if / unless

言語 if unless Java ○ × Python ○ × PHP ○ × Perl ○ ○ Ruby ○ ○

Eclipse プラグイン ERMaster

ERMaster 機能 DB -> ER図作成 ER図 -> DDL作成 ER図 -> テーブル定義書作成 対応RBDBMS MySQL Oracle PostgreSQL (開発途上) DB2(開発途上) HSQLDB(開発途上) SQLITE(開発途上) SQLServer(開発途上) インストール 拡張子 ER図ファイル(形式 XML) .erm ER図…

セッション IDをログに出力

package jp.mirageworld.webapps.interceptor; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.struts2.ServletActionContext; import com.opensym…

Struts.xml 見本

<struts> <package abstract="false" extends="struts-default" name="default" namespace="" strict-method-invocation="true"> </package></struts>

Java StackTrace の取得

Thread.currentThread().getStackTrace()[0];

Twitter4j 認証部分

clientの作成 TwitterFactory factory = new TwitterFactory(); Twitter twitter = factory.getInstance(); リクエストークンの作成 RequestToken rToken = twitter.getOAuthRequestToken(); String location = rToken.getAuthenticationURL(); リクエストー…

リスト構造

ソース package jp.mirageworld.algorithm.util; import java.util.AbstractList; import java.util.Arrays; import java.util.Collection; import java.util.List; public class GenericList<E> extends AbstractList<E> { public static class Creator<E> { public </e></e></e>…

シェイカーソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class ShakerSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<T>(list); boolean next = true; int top = 0; int bot</t></t></t></t></t>…

選択ソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class SelectSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<T>(list); int last = retList.size(); for (int i = 0</t></t></t></t></t>…

クイックソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class QuickSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<>(list); return sort(retList, 0, retList.size() -</t></t></t></t>…

ノームソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class GnomeSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<T>(list); for (int i = 0; i + 1 < retList.size();) {</t></t></t></t></t>…

奇偶転置ソート

ソース package jp.mirageworld.algorithm.sort; import static org.junit.Assert.*; import java.util.Collections; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; import org.junit.Test; public…

コンボソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class ComboSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<T>(list); boolean next = true; int last = retList.si</t></t></t></t></t>…

バブルソート

ソース package jp.mirageworld.algorithm.sort; import java.util.ArrayList; import java.util.List; public class BubbleSort { public static <T extends Comparable<T>> List<T> sort(List<T> list) { List<T> retList = new ArrayList<T>(list); boolean next = true; while (next) { next </t></t></t></t></t>…

最短の回文を検索する。

/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) thr…

回文判定をする。

/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) thr…

三分木探査

ソース package jp.mirageworld.algorithm.search; import java.util.List; public class TrinitySearch { public static <T extends Comparable<T>> boolean container(List<T> list, T target) { return container(list, target, 0, list.size()); } public static <T extends Comparable<T>> boolean containe</t></t></t>…

二分木探査

ソース package jp.mirageworld.algorithm.search; import java.util.List; public class BinarySearch { public static <T extends Comparable<T>> boolean container(List<T> list, T target) { return container(list, target, 0, list.size()); } public static <T extends Comparable<T>> boolean container</t></t></t>…

総称型の取得

pom.xml レポジトリの追加 <repositories> <repository> <id>org.seasar.maven</id> <url>http://maven.seasar.org/maven2/</url> </repository> </repositories> ライブラリの追加 <dependencies> <dependency> <groupId>org.seasar.util</groupId> <artifactId>s2util</artifactId> <version>0.0.1</version> </dependency> </dependencies>

Struts2でのバリデーションの種類

必須:文字以外 ( RequiredFieldValidator.class ) name(ognl) paramType example note fieldName String birthday 項目名称 key String error.msg 異常文言 必須:文字 ( RequiredStringValidator.class ) name(ognl) paramType example note fieldName Str…

シャッフル

ソース package jp.mirageworld.algorithm.shuffle; import java.util.ArrayList; import java.util.List; public class RandomShuffle { public static <T extends Comparable<T>> List<T> shuffle(List<T> list) { List<T> retList = new ArrayList<T>(list); for (int i = 0; i < list.size();</t></t></t></t></t>…

最短経路検索

多分もっと短くなる import java.util.*; import java.io.*; public class Main { protected static String[][] matrix; protected static int min = 9999; public static void main (String[] args) throws Exception { // Java sun-jdk-1.7. try ( InputSt…

HTML5 の 値チェックを無効化するボタン

html5 <input type="submit" formnovalidate="formnovalidate" value="戻る"/> struts2 <s:submit formnovalidate="formnovalidate" value="戻る"/></s:submit>

入力必須の項目

html5 <input required="true"/> struts2 <s:textfield required="true"/></s:textfield>

インターセプターの処理を後処理・前処理をわかりやすく

package jp.mirageworld.abstractClass; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.Ac…

ロケーションを動的に処理するための設定

package jp.mirageworld.webapps.report.actions; import java.util.Map; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import or…

カレンダーのレイアウト

<s:set var="tm" value="4" /> <s:set var="c" value="%{ new java.util.GregorianCalendar(2014,#tm,1) }" /> <s:form> <tr style="border: 1px solid black;"> <th><em>M</em></th> <th><em>T</em></th> <th><em>W</em></th> <th><em>T</em></th> <th><em>F</em></th> <th><em style="color: blue">S</em></th> <th></th></tr></s:form></s:set></s:set>

ToString 実行時に null 値を除外する。

import java.lang.reflect.Field; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; p…

HashCode を自動計算する。

commons での実装 import org.apache.commons.lang3.builder.HashCodeBuilder; public class Test { @Override public int hashCode() { return HashCodeBuilder.reflectionHashCode(this, false); } } 標準ライブラリでの実装 import java.util.Objects; pu…

equals を自動化する。

commons での実装 import org.apache.commons.lang3.builder.EqualsBuilder; public class Test { @Override public boolean equals(RoleDto obj) { return EqualsBuilder.reflectionEquals(this, obj, false); } }

特定のパラメーター・アトリビュート・ヘッダーを除外する HttpServletRequest

パラメーター 対象 hrdIgnoreNames header prmIgnoreNames parameter atrIgnoreNames attribute import java.util.Enumeration; import java.util.Map; import java.util.Vector; import javax.servlet.http.HttpServletRequestWrapper; import javax.servle…

特定の アトリビュートを無視する HttpSession

import java.util.Enumeration; import java.util.Vector; import org.apache.catalina.session.StandardSession; import org.apache.commons.lang3.StringUtils; public class HttpSessionCatalinaWrapper extends StandardSession { private String[] igno…

struts2-junit-plugin / mayaa

java.lang.IllegalStateException: instance is null org.seasar.mayaa.FactoryFactory.check(FactoryFactory.java:62) org.seasar.mayaa.FactoryFactory.getFactory(FactoryFactory.java:98) org.seasar.mayaa.impl.cycle.CycleUtil.getFactory(CycleUtil.j…

struts2-junit-plugin / seasar2 を利用した場合

import static org.junit.Assert.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.struts2.StrutsJUnit4TestCase; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.R…

struts2-convention-plugin

pom.xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-convention-plugin</artifactId> <version>${struts2.version}</version> <scope>test</scope> </dependency> strtus.xml <constant name="struts.convention.result.path" value="/" /> </constant>

struts2-junit-plugin / NoClassDefFoundError

いかのようなエラーが起きる場合がある。 2014-05-07 10:31:57.697 [ ERROR ] com.opensymphony.xwork2.util.finder.ClassFinder - Error loading class [action.admin.IndexActionTest] java.lang.NoClassDefFoundError: org/apache/struts2/StrutsTestCase…

struts2-jquery-plugin

http://code.google.com/p/struts2-jquery/ pom.xml <dependency> <groupId>com.jgeppert.struts2.jquery</groupId> <artifactId>struts2-jquery-plugin</artifactId> <version>${struts2.jq.version}</version> </dependency>

struts2-junit-plugin の使い方

pom.xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-junit-plugin</artifactId> <version>${struts2.version}</version> <scope>test</scope> </dependency> test case import static org.junit.Assert.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logg…

struts-oval-plugin / 未入力の場合はチェックしない

@Email(message = "email.invalid", when = "js:_value != null && _value != ''") public String email;

action に / を含める

<constant name="struts.enable.SlashesInActionNames" value="true" /> <constant name="struts.mapper.alwaysSelectFullNamespace" value="false" /> struts.enable.SlashesInActionNames=true struts.mapper.alwaysSelectFullNamespace=false のいずれか</constant></constant>

Twitter: @asahina_alice