關于標簽在URI后面傳參數的問題
關于標簽在URI后面傳參數的問題
發布人:小菜鳥
關于
用了一年多的struts了,對于一些常用的標簽還是比較熟悉的。將在今后慢慢做一些總結,把自己的一些經驗和大家分享,也以此拋磚引玉,希望能得到大家的高明見解。說的不對的地方請大家指正!
在struts標簽
1.若明確參數名和參數值則直接在URI后輸出,
如:
2.對于參數值不確定的,paramName和paramProperty來輸出,用paramId屬性指定參數名。
對于paramName指定的對象應該存在于page、request、session、application其中之一。一般來說,是從Action類傳過來的,作為request的屬性之一(requst.setAttribute("name",object))。
如果paramName指定的對象是action的ActionForm,則無需使用request.setAttribute方法。
例:
若參數值是一個bean對象的屬性值(比如ActionForm,或者集合中存放的對象)則:
3.若兩個參數,一個確定一個不確定,則是以上兩種方法的結合,即:
4.對于多個參數的問題,可以使用一個HashMap集合對象來存放所有的參數名及對應的參數值的方式,paramName屬性值指定為該HashMap集合對象即可。
舉例:
<%
//代碼理想的位置應該是在action中
//可以在jsp頁面測試
? java.util.HashMap pms = new java.util.HashMap();
? pms.put("code", "001002");
? pms.put("name", "tester");
? pms.put("alias", new String[]{"matin","jack"});
? request.setAttribute("params", pms);
%>
編譯后的結果:test
這種方式雖然可以解決傳多參數的問題,但是實現起來也比較麻煩,特別是對記錄集中的數據逐條列出的時候
5.針對有的網友在
例如:
有的網友認為在struts標簽內是不允許使用jsp腳本的,這種說法也不準確。如果前面的寫法改成:
雖然在struts標簽中嵌入jsp腳本不是真正意義上的struts應用,但是有時在委曲求全的情況下也只能如此了,除非使用自定義標簽。比如在form表單中可能需要根據具體數據讓某個字段是只讀的,就可以用嵌入jsp腳本來實現:
<%
boolean rdonly=false;
if(2==2) rdonly=true;
%>
(題外話,呵呵)
6.另外一種比較變態的方法,既不是真正意義上的struts,也不符合xml規范。那就是在標簽中用 先說這么多吧,有更好的方法再來補充!
如:&name=
(偶經常這樣用,哈哈,簡單?。?/P>
posted on 2005-11-02 13:56 上海灘拾貝 閱讀(232) 評論(0) 編輯 收藏 所屬分類: 編程基礎