monorail和webform很大的乙個區別就是沒有使用viewstate,不能使用webform中的伺服器控制項。
下面列出我看到的一些方式,有遺漏的地方,歡迎補充。
注:對於中文可能亂碼的情況:
1、需要把如下的nvelocity.properties檔案放入views/ 下:
input.encoding=gb2312
output.encoding=gb2312
2、在web.config中指定中文編碼:
取值方式:
測試html檔案
1、 最原始的request方式:
public void index()
2、 智慧型繫結方式
我們的controller需要從**artdispatchercontroller繼承:
public class servletcontroller : **artdispatchercontroller
然後就可以直接定義方法:
public void index(int id, string name, int age, datetime birthday)
就會自動將值作為引數繫結
另外,如果我們有如下的乙個類:
public class user1
set
}private string _name;
public string name
set
}private int _age;
public int age
set
}private datetime _birthday;
public datetime birthday
set
}}在繫結時可以直接繫結到這個類上面去:
public void index([databind("user")]user1 user)
同時開始時的測試html也要做修改:
加了乙個字首user.
另外user1類中的屬性名是不區分大小寫的,還有當輸入的日期格式不合法時,會賦預設值0001-1-1
3、params方式
string aa = params["id"];
string aa = params["name"]; params屬性中不光儲存有頁面的值,還有http頭資訊的,比如params["remote_host"]就可以取得遠端主機的名稱
將值傳入頁面
1、直接使用request物件
使用request物件可以直接取得上乙個頁面輸入的值,在vm中顯示
vm中:
$request.form.get("birthday")
2、使用flash物件
flash物件的使用和下面的propertybag物件基本相同
public void index()
public void flash1()
也就是把值分別放入propertybag和flash中後跳轉到下乙個action
display.vm中:
$test
$test2
頁面顯示時能正確顯示test的值,test2值取不到
也就是說flash物件可以儲存比如出錯資訊等,在下乙個頁面中顯示
3、普通的propertybag方式
propertybag.add("name", "姓名");
propertybag.add("list", new string ); vm中:
姓名:$name
#foreach ($element in $list)
$element
#end可以傳入一些標準物件,物件和陣列
4、使用propertybag將自定義物件傳入頁面
propertybag.add("user", user);
vm中:
姓名:$user.name
對於復合情況,比如arraylist中儲存user物件的情況也很方便:
arraylist list = new arraylist();
list.add(user);
propertybag.add("list", list); vm中:
#foreach ($element in $list)
$element.name
#end
5、使用helpers物件
對於需要在vm中呼叫類方法的情況,比如servletcontroller類中有如下方法需要在vm中被呼叫:
public string welcome(string str)
index方法:
public void index([databind("user")]user1 user)
主要是要把物件放入helpers物件中去
vm中:
#foreach ($element in $list)
$welcome.welcome($element.name)
#end
另外如果這個方法在很多action中都要呼叫到,我們可以加入如下的類屬性:
[helper(typeof(servletcontroller), "welcome")]
public class servletcontroller : **artdispatchercontroller
如果這個方法不光是這個controller中用到,我們還可以定義乙個包含此屬性的父類,其他需要用到的地方直接從這個父類繼承,那麼在vm中就可以直接使用了
另,monorail也提供了一些標準的helpers:
abstracthelper builtinhelpers =
new abstracthelper
;
layer父子頁面互動
layer是一款近年來備受青睞的web彈層元件,官網位址是 當layer以iframe層的方式彈出新的視窗 子頁面 如何在子頁面中訪問父頁面的元素和函式。1 訪問父頁面元素值 var parentid parent.id val 訪問父頁面元素值 2 訪問父頁面方法 var parentmethod...
PHP 與web頁面互動
php 與web頁面互動 一 http請求 get方法將表單內容附加在url後傳送,post將表單資訊作為乙個資料塊傳送。get是用來從服 務器上獲 得資料,而post 是用來向服務 器上 傳遞資料。get 是不安全的,因為在 傳輸過程,資料被放在 請求的url 中,而如今現 有的很多伺服器 服 務...
列表框在頁面互動中的應用
列表框在頁面互動中的應用 regist.jsp 其中size屬性制定了列表框顯示選項的條數,如果所有選項多於這個數,將會出現滾動條。每個option標籤對應乙個選項,value屬性是選項的值,如果選項指定了 selected selected 表示這個選項為預設被選擇了。regist do.jsp ...