網頁

2017/12/28

2017年底回顧

今天是2017年最後一天的工作日,回顧一下今年及展望明年,寫些瑣事。

2017/12/27

2017/12/26

Selenium HTML element locator 定位器

Selenium的HTML locator用來找尋網頁中的element,共有以下幾種locator。

什麼是XPath

XPath (XML Path Language) 是一種用來尋找XML文件中某個節點(node)位置的查詢語言。

什麼是Selenium WebDriver ?

Seleniumn WebDriver是用來執行並操作瀏覽器的一個API介面,程式透過呼叫WebDriver來直接對瀏覽器進行操作。

2017/12/25

在Eclipse中使用WebDriver執行Selenium test case測試 for Java

在Eclipse中使用WebDriver執行Selenium test case測試。

2017/12/24

Katalon Automation Recorder Chrome extension簡介

最近要導入自動化測試,所以開始研究一下Selenium,正要安裝的時候才發現Chrome沒有,新版的Firefox也沒有,然後看到了Katalon Automation Recorder這個工具。

Java 隨機產生字串

在Java產生隨機的字串方法如下

日誌 20171225

原來之前有寫過日誌了,但中斷了都沒發現。

2017/12/20

Mybatis 共用resultMap

Mybatis如果有許多的Mapper用到相同的resultMap,例如使用者資料之類的model,則可以把這個被共用的resultMap獨立出來成為一個Mapper,然後將使用到這個resultMap的Mapper的<select >resultMap的值指向其id即可。

JSP include 共用的taglibs標籤函式庫

在JSP幾乎都會用到的taglibs(標籤庫)例如JSTL,可以放在一個共用的JSP片段中在include至要使用的JSP頁面中,例如

2017/12/18

Mybatis Spring 連線資料庫設定

在Spring使用Mybatis的設定方法如下,本篇使用Maven來加入所需的jar

2017/12/17

Java 為什麼在Service層要使用Interface

在Java Web應用程式中,SpringMVC的@Controller@Service@Repository的分層架構是經常被使用的架構。在實作Service層時,通常會先定義Service的介面,然後才撰寫具體類別實作該介面。我曾經認為為什麼要這麼麻煩呢? Service直接寫成類別不就好了,寫一個介面然後再來繼承不是多此一舉很麻煩嗎? 後來查了一下才知道這樣做的原因其實就是符合SOLID原則的設計,不直接依賴類別的好處如下。

2017/12/14

Spring MVC 重新導向(redirect)傳遞參數

在Spring MVC中,若要從一個Controller重新導向(redirect)至另一個Controller並傳遞參數的方法如下。

2017/12/12

避免jsp被瀏覽器cache

避免jsp被瀏覽器cache住而無法刷新內容,可在jsp頁面加入以下程式碼。

Eclipse 如何建立src/main/resources package

在Eclipse的專案中建立src/main/resources package目錄的方法如下。

被Include的jsp的內容出現亂碼

如果被include的jsp文件的內容出現亂碼,則在被include的jsp中最上方加入以下應該可以解決。

MySQL mysqldump備份資料庫

使用mysqldump指令來備份資料庫及資料表

2017/12/11

MySQL 5.7 突然無法啟動 in Windows 7

MySQL服務突然無法啟動這問題已經碰到兩次了,真的是覺得很煩,然後就想遷怒Oracle。

如何停止MySQL在Windows 7的自動更新

為什麼要停止MySQL的自動更新呢? 因為我懷疑是自動更新導致原本能啟動的MySQL服務變成無法啟動,因為某些資料夾或設定在自動更新後被覆寫掉了,真的很煩。

2017/12/8

在JSP產生亂數

在Java JSP中若要產生亂數,可以使用EL搭配Math.random(),例如${Math.random()}。

Spring MVC 從Controller的方法重新導向至頁面

如果要從SpringMVC的Controller的方法重新導向到jsp或html頁面,可以回傳prefix為redirect:的字串。

2017/12/7

用Notepad++將垂直排列的文字轉成水平排列

將垂直排列的文字轉呈水平排列,可以使用Notepad++的取代功能。

記帳簿 從Github clone Maven Web專案並匯入至Eclipse專案

首先取得Github專案的位置,例如https://github.com/matthung0807/moneynote.git

2017/12/6

MySQL 查詢資料庫字元集(Character Set)設定

使用下面SQL查詢MYSQL資料庫目前的字元編碼設定。

記帳簿資料庫設計

記帳簿資料庫設計

JBoss Unable to get managed connection for [JNDI_NAME]

如果你的應用程式在透過JBoss JNDI設定連不上資料庫並出現

javax.resource.ResourceException
Unable to get managed connection for [JNDI_NAME]
那很有可能你的jdbc driver有問題,請檢查JBoss的library目錄(例如[JBOSS_HOME]/server/default/lib)中的jdbc driver版本是否正確,或是放了多個jdbc都可能導致此錯誤。

MyBatis 返回整數 resultType

在MyBatis查詢如果要返回整數,則resultType屬性要設為java.lang.Integer

<select id="select" resultType="java.lang.Integer">
  SELECT COUNT(*)
  FROM USER_PROFILE
</select>

呼叫的Interface的方法如下。

public Integer select(); 

2017/12/5

在URL參數中傳遞日期Date至Spring MVC Controller的@ModelAttribute參數

從前端頁面要透過url參數傳遞日期至Spring MVC的@ModelAttribute參數,而該Model物件的屬性為java.util.Date,則日期成員變數前可加上@DateTimeFormat並根據前端傳來的格式設定pattern屬性,

JavaScript 取代全部

JavaScript字串的replace()函式如果第一個用來取代的參數是一般字串,則只會取代字串中第一個符合的字而已,而不是取代全部符合的字。

JavsScript 下中斷點除錯

一只以來都是直接在瀏覽器的開發模式下中斷點來除錯,知道今天才知道原來也可以在javascript程式碼中使用debugger關鍵字加入中斷點。

網頁導覽路徑 Breadcrumb

在網頁上方通常會有一個顯示目前在網站中哪個功能下的資訊,這條資訊列中文稱作導覽路徑,英文稱作breadcrumb,也就是麵包屑的意思。

MyBatis java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String 錯誤

今天在用MyBatis查詢根據輸入Date的條件查詢時,發生下面錯誤。

2017/12/4

jQuery 在jqGrid的欄位中加入按鈕

在jqGrid的列表中如要加入按鈕,可使用Custom Formatter

如何查詢Oracle 字元集(Character Set)編碼

Oracle資料庫的編碼設定可使用下面SQL查詢。

2017/12/1

Java 設計模式 狀態模式 State Pattern

本篇介紹設計模式的狀態模式(State Pattern)。