Strust2 --- 根據泛型封裝Action的模型驅動ModelDriven獲取model物件
public class BaseAction<T> extends ActionSupport implements ModelDriven<T> { //模型驅動 protected T model; @Override public T getModel() { return model; } // easyui分頁引數 protected int page; protected int rows; public void setPage(int page) { this.page = page; } public void setRows(int rows) { this.rows = rows; } //構造器完成model例項化 public BaseAction(){ // 構造子類Action物件,獲取繼承父型別的泛型 // 例如:AreaAction extends BaseAction<Area> // getGenericSuperclass()獲取帶有泛型的父類class Type genericSuperclass = this.getClass().getGenericSuperclass(); // 獲取型別的第一個泛型 ParameterizedType parameterizedType = (ParameterizedType)genericSuperclass; Class<T> modelClass = (Class<T>) parameterizedType.getActualTypeArguments()[0]; try { model = modelClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); System.out.println("模型構造失敗!!!"); } } // 將分頁的查詢結果資料壓入值棧的方法 protected void pushPageDataToValueStack(Page<T> pageData){ //根據查詢結果,封裝datagrid需要的資料格式 Map<String,Object> result = new HashMap<>(); result.put("total",pageData.getTotalElements()); result.put("rows",pageData.getContent()); //壓入值棧返回 ActionContext.getContext().getValueStack().push(result); } }
相關推薦
Strust2 --- 根據泛型封裝Action的模型驅動ModelDriven獲取model物件
public class BaseAction<T> extends ActionSupport implements ModelDriven<T> { //模型驅動
001_gson的泛型封裝
我估計很多使用gson的人都會遇到這個問題 先來說說我怎麼發現這個問題的吧 我們知道gson最簡單的一個用法 就是把字串轉換成object或者list 舉個例子: public class User {
java操作mongodb,泛型封裝增刪查改、條件查詢等操作
本文實現一個通用泛型封裝實現類,需要給定一個集合物件,類似mysql中與java對應的表;思想就是把給定的物件解析出所有非空欄位,儲存到一個BasicDBObject中,這裡一定要保證java物件與mongodb中的文件欄位名字一樣,因為程式碼為了實現通用,是預設以java物
struts學習(四)—屬性封裝、模型驅動封裝和表示式封裝
本文學習內容來自傳智部落格struts教程。 1.屬性封裝 作用: 直接把表單提交屬性封裝到action的屬性裡面 步驟: (1)在action中宣告成員變數,變數名稱和表單輸入項的名稱一樣 (2)生成變數的set方法。 缺
Struts2模型驅動將實體類物件自動壓入值棧棧頂的問題
struts2中action自動將模型(實體類物件)放入值棧棧頂,棧頂的實體類例項的各個屬性(除了從頁面通過模型驅動進來的屬性)總是null,通過不斷的撓頭和查閱才發現模型驅動的ModelDriven介面的 getModel()返回的物件指向的是例項是最初new出的物件的地址,如果在acti
Struts2的模型驅動(ModelDriven)
1. 模型驅動: 模型驅動是使用javaBean物件來封裝請求引數,在整個MVC流程中可以直接使用這個物件。在傳送請求後Struts將各個請求引數(javab的屬性)封裝到一個JavaBean物件中,Action接收這個例項物件並用該物件進行相關處理返回處理結果。
[瘋狂Java]泛型:泛型的定義(類、介面、物件)、使用、繼承
1. 設計泛型的初衷: 1) 主要是為了解決Java容器無法記憶元素型別的問題: i. 由於Java設計之初並不知道會往容器中存放什麼型別的元素,因此元素型別都設定為Object,這樣就什麼東西都能放了! ii. 但是這樣設計有明
C++製作一個泛型容器(可以盛放各種型別的物件)
如果你想要一個可以盛放各種型別的物件,那麼基本上可以說在C++裡沒有,或者你可以用vector<boost::any>或者其他的什麼來模擬,我說那都不怎麼好。問題就在於我的型別會在執行時動態的增加,你不可能知道我會增加什麼型別,我的標頭檔案也不會給你。 現在
Java泛型,結合JSONObject動態生成指定的物件
private <T> T getTargetClass(String resultString, T t) { System.out.println(resultString); JSONObject result = JSONObject.from
【SSH快速進階】——struts2的模型驅動—ModelDriven
上篇部落格《SSH快速進階——struts2簡單的例項》中,處理使用者登陸的action—LoginAction為: package com.danny.user.action; public cl
wqjtfbkd0層封裝泛型實現(SpriNgMc
spring tar ref htm iou 泛型 blank ins target wqjtfbkd0層封裝泛型實現(SpriNgMc 穸跖 wqjtfbkd0層封裝泛型實現(SpriNgMcwqjtfbkd0層封裝泛型實現(SpriNgMc
從頭認識java-13.5 利用泛型構建復雜模型
引用 ucid http lee private 這一 數據 pack ora 這一章節我們來展示一下如何利用泛型構建復雜模型?1.元組列表我們之前已經說過元組是一個復雜的模型,能夠返回多對象。package com.ray.ch11; import java.uti
SpringBank 開發日誌 重新設計Action調用Service的參數傳遞 使用泛型解決類型轉換問題
from eth 開始 request 攔截 反射 list 日期 check 之前想的比較簡單,請求到達controller的時候,傳給action的參數沒有經過任何封裝,就是一個Map。然後action再調用service的時候,傳遞的參數也是map @Control
struts2獲取表單數據之 屬性封裝 模型驅動 表達式封裝 對象封裝到list集合 對象封裝到map集合 五種方便的封裝方式
demo1 submit namespace auto nbsp return admin user pri 一、屬性封裝 屬性封裝是在action裏面設定屬性值,屬性名字一定要和表單中的name一樣,action中extends ActionSupport dem
十二、事件,委托,泛型委托,集合(泛型和非泛型),Lambda表達式(聲明委托,使用委托,簡單的委托示例,action<T>和func<t>委托,多播委托,匿名方法,Lambda表達式,參數,事件)
multicast new 調用方法 多播 ted 被調用 輸入參數 pac cas 事件(Event) 事件是一種對象或類能夠提供通知的成員,客戶端可以通過提供事件處理程序為相應的事件可添加可執行代碼,事件可以理解為一種特殊的委托。 委托(Delegate) 委托是存有對
通過hibernate封裝數據庫持久化過程回顧泛型/繼承/實現等概念
ring 改進 具體類 額外 generated 父類 etc 字段 是你 前言 在開發過程中,我們不難發現,客戶的需求以及產品的定位對開發內容的走向有很大的決策作用,而這些往往需要在一開始就盡可能考慮周全和設計完善。為什麽說是盡可能,因為我們都知道,需求這種東西,一言
根據用戶名的輸入顯示密碼(用了<String>泛型)
子類 secret public pan rgs else println stat system.in /*接口List分為LinkedList和ArrayList;泛型<String>規定該類new出的對象或聲明的引用只能存放String類的對象 eg:Li
java高級-泛型<T>和註解封裝與使用
bat string 為什麽 cor this 模塊名 vat () parameter p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Yuanti SC"; color: #000000 } span.s1 {
將伺服器響應封裝為一個泛型類
/** * * 返回前端資料封裝 */ //當序列化Json物件時,如果是null的物件,key也會消失 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) public class ServerResponse<T&
Action<T>和Func<T>泛型委託,委託,泛型,匿名函式,Lambda表示式的綜合使用
前言 在上篇文章C#中委託(delegate)和多播委託的理解中已經基本瞭解了委託的用法。 由於委託封裝的方法我們不一定知道其傳入的引數和返回值,例如之前說的的排序方法—————在物件的排序演算法中,需要對物件進行比較,而不同物件比較的方法不同,所以比較兩個物件的方法的引用可以作為引數傳