原创 【Struts2】(7)ModelDriven和類型轉換器

一. ModelDriven 我們可以通過對Action實現ModelDriven接口來做到更方便的傳值。這樣子,我們甚至不用寫set和get方法: public class UserAction implements ModelDriv

原创 【Spring3】(3) AOP

一. 靜態代理 我們有這樣子一個類: @Component public class Me { @Resource private Servant servant; @Resource private Servant2 serv

原创 【Spring3】(2)常用注入

我們修改一下配置文件,現在將原來的配置文件分開爲兩個,applicationContext.xml: <bean id="userAction" class="com.thr.spring.UserAction" scope="sing

原创 【Struts2】(9)國際化

一. I18N國際化 I18N國際化是這樣子的: public class I18N { public static void main(String[] args) { Locale locale = new Locale(ar

原创 【Struts2】(10)校驗

一. 手動輸入編碼校驗 1. 使用addActionError 先創建一個Action繼承ActionSupport: public class ValidatorAction extends ActionSupport { priv

原创 【Struts2】(11)異常處理和標籤

一. 異常處理 1. 局部異常處理 在之前的ValidatorAction.java中修改execute方法: public String execute() { if (!"Jerry".equals(username)) {

原创 【Struts2】(1)第一個程序

1. 環境搭建 1. 首先從Apache官網下載Struts的壓縮包,將如下幾個常用包導入工程: 2. 然後在web.xml中添加配置過濾器: <filter> <filter-name>struts2</filter-name>

原创 【Struts2】(5)OGNL表達式

一. OGNL表達對各種方法的調用 1. 調用靜態方法 我們創建一個Utils工具類,裏面有2個靜態方法: public static String toUpperCase(String str) { return str.toUp

原创 【Struts2】(2)動態調用方法

接着我們上一篇的內容。 1. 第一種動態方法調用 先來看看struts配置文件: <struts> <constant name="struts.devMode" value="true" /> <constant name="str

原创 【Struts2】(4)複雜對象傳遞

一. 複雜對象傳遞 1. 視圖給action中複雜的對象屬性傳參 假設我們有這樣子的一個User對象: private int id; private String username; private String password

原创 【Struts2】(6)攔截器

一. 攔截器的基本概念和基本用法 要創建一個攔截器,可以繼承AbstractInterceptor類: public class SimpleInterceptor extends AbstractInterceptor { priv

原创 【Hibernate3】(3)數據庫生成策略

一. 常用主鍵生成策略 在User.hbm.xml配置文件中,對id的<generator>有如下幾種常用配置: 1. increment 是HIbernate自己生成的一個策略,先從數據庫中查詢最大的一個id,然後加1保存新的數據。

原创 【Struts2】(3)參數傳遞

一. 轉發類型 在Struts源碼struts2-core包中,有一個struts-default.xml文件,裏面寫了幾種轉發類型: <package name="struts-default" abstract="true"

原创 【Hibernate3】(5)關聯映射(二)

一. 一對多雙向關聯 在Contact類中,新建關於Group的成員: public class Contact { private int id; private String name; private Group grou