2017年10月9日 星期一

京阪自由行票券紀錄

多年不更新很跳tone的紀錄前陣子去的四天京阪自由行

略過去旅行社訂機+酒
但住的地方也是survey了許久,為了可以搭完地鐵可以快速回到旅館
就算有出口很近的,還是要看一下地鐵本體和出口的距離

得先決定要去的目標,不論是逛街還是看景點,這攸關你交通工具的選擇
因為實在太複雜了,而且有想要再去的想法,所以先紀錄一下,以免後來忘光光
有些票是跟旅行社買的,比其他在日本本地買的票券划算

  • 南海電車機場特急Namba Access Rapi:t來回票 (Namba Access Rapi:t Ticket)
    • 2,120日元 (來回) ,還附難波PARKS和難波CITY使用的購物折扣券的兌換券(減500日圓×3張)
    • 只有在台灣旅行社買得到
    • 旅行社給的是兌換券(來回同一張)
    • 有N種語言的說明書,使用說明及兌換地點寫得很清楚
    • 窗口大多講英文,會明確的跟你比剪票口的位置
    • 有對號坐位,車箱還有專門放行李箱的地方

到達關西機場後我們打算直奔大阪難波
我們追求平穩又快速的交通工具,因為去香港時坐接駁巴士差點吐在車上
雖然購物券我們是沒用到

跟著機場往電車搭乘處指標就會到南海電車和JR的購票處
到南海電車專用櫃台兌換和劃位(通常是依哪台車時間較近就劃哪台車,你也可以查好時間指定)
窗口說的聽不太懂也沒關係,去對面的剪票口進入車站,再坐電梯或手扶到樓下
你的車不是左邊的月台就是右邊的月台,看看板或詢問站務人員即可
在難波回來就得好好聽一下,他連月台號碼都跟我說明了
每間旅行社賣的價格不同,可以再比較
🔜 好處是,比起其他車種就是卡快(個人沒有比較JR),有坐位就是很速西,坐到睡著


  • 【外國人専屬版】大阪地鐵・巴士1日乗車券(OSAKA 1day pass)
    • 550日元/一日
    • 當日大阪地鐵各線無限次數上下車(巴士應該也是吧?),以票卡進出不需再兌換
    • 可於台灣旅行社/關西旅遊訊息服務中心(關西國際機場/大丸心齋橋)/關西國際機場第2航廈的觀光情報廣場購買
    • 說明書附路線圖
    • 使用時間為當日的首班車~未班車,不是第一次使用起24小時
    • 有些大阪景點(像是大阪城),出示票卡有折扣,說明書有寫


而依我們在大阪趴趴走的地點看起來都可以由地鐵到達
雖然也沒沒有訂出多細的行程
但想省買票的麻煩就買了四張,每天給他用一張
可以依匯率看要在台灣或日本購入(各旅行社價錢也不同)
不過想再省省的人還是可以安排詳細行程後計算搭地鐵的金額
因為近程的地鐵一趟是180日元,可於大阪市交通局查詢,雖然是日文版,但有地圖可以選


  • 京阪電車-京都、大阪觀光二日券
    • 1000日元/二日(700日元/一日)
    • 可不連續日期使用
    • 京阪電車區間當日不限次數上下車,以票卡進出不需再兌換
    • 可於台灣旅行社/關西旅遊訊息服務中心(關西國際機場/大丸心齋橋)購買
    • 說明書附路線圖
    • 全車自由坐,除了第6號車箱要多付500日元買Premium Car,就有對號坐位
    • 有很多車種,先了解到達目的地是否需要轉車再上車佳
    • 有搭配許多景點的折扣券,還有機場免稅店折價券...等
    • 有機會換到的是限定的皮卡丘版本(我們就換到了 2017年)


這個是家人推薦的車種所以我就沒有研究其他種惹
很平價,從大阪到京都也大約花一個小時左右而已,CP值很高
但有些車站地點會比其他交通工具離景點稍遠,可再評估
可以依匯率看要在台灣或日本購入(各旅行社價錢也不同)
可先於官網路線圖,各種不同的車種停的站不一樣,行駛所需時間也不一樣,可以轉車前往目的地
另外,比較快的車種只停大站(就跟台鐵一樣),故從其他景點回京阪電車車站時優先選擇大站比較好
如果回程遇到日本下班時間,太累可考慮加500日元坐6號車箱,不確定能不能上車後再購買
明顯超空的RRRR,其他車箱就擠爆(也許比較慢的車種就不會吧?
也可以於官網查詢車站時刻表(可先由地圖選車站,依顏色判斷車種)



  • 市巴士‧京都巴士一日券
    • 500日元/一日
    • 價均一區間內的市公車和京都巴士,1日以內可以無限次乘上下車
    • 可於巴士上跟司機/定期券出售窗口/京都車站的自動販賣機購買,我在關西旅遊訊息服務中心(大丸心齋橋)買不到
    • 店販有說明書附路線圖


到京都去很多景點都得坐巴士,大多數的巴士也都可以使用這個一日券
因為太害怕司機的缺貨,所以去了京都車站的旅行規劃店購買
巴士要投零錢很害怕沒有零錢所以買一日券
巴士搭乘處會有說明他的下一站,比台灣的好懂多了,比較不會坐錯邊
車上也會一直顯示及播報下一站的站名,只要記得按下車鈴就好
我們都搭到均一的巴士,從後門上車不需先付款
下車時第一次使用一日券時就插入票口(票是有方向性的,請看紅色箭頭),它會自動幫你在背面印出當天日期
第二次搭乘時出示一日券即可
等車時會排隊,遇到不是自己的車號來時,閃邊讓人家過即可

以上就是本次京阪行的票券紀錄


順道一提,機場的票券購買窗口排隊的人真是有夠多
好險我們在旅行社先買了一張地鐵一日券,後來是去心齋橋大丸百貨二樓的關西旅遊訊息服務中心買到剩下的票券(保證人家跟你講中文/還不太需要排隊)
還有 買票京阪電車票券一定要出示護照 記得帶出門

當時參考的部落格 非常感謝
小氣少年
Lazy Japan










2015年3月18日 星期三

[JavaScript] 子視窗submit後重整母視窗並關閉子視窗

用window.open開啟一個子視窗後
在子視窗進行動作(submit)後想關閉子視窗並重整母視窗

1.需在子視窗submit後導向另一頁面(也在子視窗裡)
2.在另一頁面<head></head>中寫入
<script type="text/javascript">
    opener.location.reload(true);
    window.close();
</script>

opener.location.reload(true); 重整母視窗
window.close();關閉視窗

不要寫在bady 的onload中 它會在window.close()不斷的onload (原因未查)

※感謝此篇解答

2015年2月24日 星期二

[Bug] javax.persistence.EntityExistsException: a different object with the same identifier value was already associated with the session: [Model Name#index]

出現此Bug為在persistence中有已有一個Primary key相同的物件存在
若該Primary key為自動累加的流水號
需在JPA特別設定
@GeneratedValue(strategy=GenerationType.IDENTITY)

如下:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name = "id",length = 15)
private Integer id;

[MySQL] MySQL保留字 (Reserved Words)

有時候Query時出現錯誤訊息
像是You have an error in your SQL syntax ...SQL語法... At Line 1之類的
但語法完全正確

可以找找看是否表名或欄位名使用到了保留字

可查閱MySQL的官方參考手冊
選擇適合自己的版本,例如5.7版
保留字 (Reserved Words) 通常被放在第9章裡

Google「MySQL 保留字」也可以找到好心人士的非最新版MySQL參考手冊中文版


2015年2月9日 星期一

[Bug] java.lang.ClassNotFoundException: org.apache.tiles.web.startup.TilesListener

今天試著不要參考前輩建的環境架構
自己用maven + struts2 + tiles 架出基礎架構
 tiles是參考tutorialspoint

結果在裝tiles時遇到了這個Bug

二月 09, 2015 4:31:22 下午 org.apache.catalina.core.StandardContext listenerStart
嚴重: Error configuring application listener of class org.apache.struts2.tiles.StrutsTilesListener
java.lang.NoClassDefFoundError: org/apache/tiles/web/startup/TilesListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4888)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.apache.tiles.web.startup.TilesListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    ... 19 more

原因在於我們在web.xml加了listener

<listener>
          org.apache.struts2.tiles.StrutsTilesListener
</listener>

呼叫的是struts2-tiles-plugin這個jar檔的StrutsTilesListener(見圖左下)
但 StrutsTilesListener又extends TilesListener(見圖右)
TilesListener應該要在tiles-core這個jar檔中(文中使用到3.0.5版),但找不到了(見圖左上)








因此

1. struts2-tiles-plugin裡沒有StrutsTilesListener的話請修改到有StrutsTilesListener的版本
應該是2.2.1以上(無求證)
我目前使用過2.3.x 都有

2. tiles-core裡沒有TilesListener請修改tiles-core的版本聽說是2.0.x可使用(無求證)
我目前使用2.0.6

3. 若將tiles-core改成2.0.6後還有其他錯誤,請再檢查tiles-api及tiles-jsp,最好都改成同一版本,因為tiles-core會呼叫tiles-api,轉去jsp頁面時會呼叫tiles-js,它們同一國的!

結論:
採用
struts2-tiles-plugin.2.2.1.jar ↑
tiles-api.2.0.6.jar
tiles-jsp-2.0.6.jar
tiles-core-2.0.6.jar
得出這個結論參考了這裡