struts2中的s標簽

来源:http://www.cnblogs.com/angelye/archive/2017/08/08/7307037.html
-Advertisement-
Play Games

1 那就從簡單的標簽說起吧!1.x中常用的標簽只有4中html、bean、logic、tiles 2 3 而struts2.0里的標簽卻沒有分類,只用在jsp頭文件加上 4 5 6 就能使用struts2.0的標簽庫 7 8 9 下麵就介紹每個標簽的具體應用實例說明:按字母排列 10 11 12 A... ...


  1 那就從簡單的標簽說起吧!1.x中常用的標簽只有4中html、bean、logic、tiles
  2 
  3 而struts2.0里的標簽卻沒有分類,只用在jsp頭文件加上   
  4 
  5 
  6 <%@ taglib prefix="s" uri="/struts-tags" %>   就能使用struts2.0的標簽庫   
  7 
  8 
  9 下麵就介紹每個標簽的具體應用實例說明:按字母排列
 10 
 11 
 12 A:   
 13 
 14 1.   
 15 2. <s:a href=""></s:a>-----超鏈接,類似於html里的<a></a>   
 16 3. <s:action name=""></s:action>-----執行一個view裡面的一個action   
 17 4. <s:actionerror/>-----如果action的errors有值那麼顯示出來   
 18 5. <s:actionmessage/>-----如果action的message有值那麼顯示出來   
 19 6. <s:append></s:append>-----添加一個值到list,類似於list.add();   
 20 7. <s:autocompleter></s:autocompleter>-----自動完成<s:combobox>標簽的內容,這個是ajax   
 21 
 22 
 23 B:   
 24 
 25 
 26 1. <s:bean name=""></s:bean>-----類似於struts1.x中的,JavaBean的值   
 27 
 28 
 29 C:   
 30 
 31 
 32 1. <s:checkbox></s:checkbox>-----覆選框   
 33 2. <s:checkboxlist list=""></s:checkboxlist>-----多選框   
 34 3. <s:combobox list=""></s:combobox>-----下拉框   
 35 4. <s:component></s:component>-----圖像符號   
 36 
 37 
 38 
 39 
 40 
 41 
 42 D:   
 43 
 44 
 45 1. <s:date/>-----獲取日期格式   
 46 2. <s:datetimepicker></s:datetimepicker>-----日期輸入框   
 47 3. <s:debug></s:debug>-----顯示錯誤信息   
 48 4. <s:div></s:div>-----表示一個塊,類似於html的<div></div>   
 49 5. <s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----雙下拉框   
 50 
 51 
 52 
 53 
 54 
 55 
 56 E:   
 57 
 58 
 59 1. <s:if test=""></s:if>   
 60 2. <s:elseif test=""></s:elseif>   
 61 3. <s:else></s:else>-----這3個標簽一起使用,表示條件判斷   
 62 
 63 
 64 
 65 
 66 
 67 
 68 F:   
 69 
 70 
 71 1. <s:fielderror></s:fielderror>-----顯示文件錯誤信息   
 72 2. <s:file></s:file>-----文件上傳   
 73 3. <s:form action=""></s:form>-----獲取相應form的值   
 74 
 75 
 76 
 77 
 78 
 79 
 80 G:   
 81 
 82 
 83 1. <s:generator separator="" val=""></s:generator>----和<s:iterator>標簽一起使用   
 84 
 85 
 86 
 87 
 88 
 89 
 90 H:   
 91 
 92 
 93 1. <s:head/>-----在<head></head>里使用,表示頭文件結束   
 94 2. <s:hidden></s:hidden>-----隱藏值   
 95 
 96 
 97 
 98 
 99 
100 
101 I:   
102 
103 
104 1. <s:i18n name=""></s:i18n>-----載入資源包到值堆棧   
105 2. <s:include value=""></s:include>-----包含一個輸出,servlet或jsp頁面   
106 3. <s:inputtransferselect list=""></s:inputtransferselect>-----獲取form的一個輸入   
107 4. <s:iterator></s:iterator>-----用於遍歷集合   
108 
109 
110 
111 
112 
113 
114 L:   
115 
116 
117 1. <s:label></s:label>-----只讀的標簽   
118 
119 
120 
121 
122 
123 
124 M:   
125 
126 
127 1. <s:merge></s:merge>-----合併遍歷集合出來的值   
128 
129 
130 
131 
132 
133 
134 O:   
135 
136 
137 1. <s:optgroup></s:optgroup>-----獲取標簽組   
138 2. <s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右選擇框   
139 
140 
141 
142 
143 
144 
145 P:   
146 
147 
148 1. <s:param></s:param>-----為其他標簽提供參數  
149 struts2的s:param標簽主要有兩個屬性name與value, 若想在value屬性中輸入直接量,則可以這樣寫:<s:param name="some" value="%{'user'}"/>, 也可以這樣寫:<s:paramname="some">user</s:param>。但如果直接賦值,這個值不是由Action動態生成的,而是自己指定的一個字元串,則只能用後者
150 
151 
152  
153 2. <s:password></s:password>-----密碼輸入框   
154 3. <s:property/>-----得到'value'的屬性   
155 4. <s:push value=""></s:push>-----value的值push到棧中,從而使property標簽的能夠獲取value的屬性   
156 
157 
158 
159 
160 
161 
162 R:   
163 
164 
165 1.   
166 2. <s:radio list=""></s:radio>-----單選按鈕   
167 3. <s:reset></s:reset>-----重置按鈕   
168 
169 
170 
171 
172 
173 
174 S:   
175 
176 
177 1. <s:select list=""></s:select>-----單選框   
178 2. <s:set name=""></s:set>-----賦予變數一個特定範圍內的值   
179 3. <s:sort comparator=""></s:sort>-----通過屬性給list分類   
180 4. <s:submit></s:submit>-----提交按鈕   
181 5. <s:subset></s:subset>-----為遍歷集合輸出子集   
182 
183 
184 
185 
186 
187 
188 T:   
189 
190 
191 1. <s:tabbedPanel id=""></s:tabbedPanel>-----表格框   
192 2. <s:table></s:table>-----表格   
193 3. <s:text name=""></s:text>-----I18n文本信息   
194 4. <s:textarea></s:textarea>-----文本域輸入框   
195 5. <s:textfield></s:textfield>-----文本輸入框   
196 6. <s:token></s:token>-----攔截器   
197 7. <s:tree></s:tree>-----樹   
198 8. <s:treenode label=""></s:treenode>-----樹的結構   
199 
200 
201 
202 
203 
204 
205 U:   
206 
207 
208 1. <s:updownselect list=""></s:updownselect>-----多選擇框   
209 2. <s:url></s:url>-----創建url
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 ___________________________________________________
223 
224 
225 
226 
227 struts2框架的標簽庫分為三類:
228 
229 
230 用戶標簽:生成HTML元素 
231 非用戶標簽:數據訪問、邏輯控制等。 
232 AJAX標簽:支持AJAX技術。 
233 用戶界面標簽又分兩類:
234 
235 
236 表單標簽:生成HTML頁面的from元素 
237 非表單標簽:生成頁面上的Tab、Tree等 
238 非界面標簽又分為數據訪問標簽和流程式控制制標簽。
239 
240 
241  
242 
243 
244 控制標簽:
245 
246 
247 if/elseif/else標簽:控制流程分支。 
248 iteratot標簽:對集合屬性迭代(屬性類型:List、Map、數組)。 
249 append標簽:將多個集合對象拼接在一起,組成一個新的集合。將多個集合使用一個<iterator/>標簽完成迭代。 
250 generatot標簽:將指定的字元串按照規定的分隔符分解成多個子字元串。 
251 merge標簽:將多個集合拼接在一起。 
252 subset標簽:獲取某個集合的子集合。 
253 sort標簽:多指定的集合元素進行排序。 
254 數據標簽:
255 
256 
257 action:直接調用一個Action,根據executeResult參數,可以將Action的處理結果包含到頁面中。 
258 bean:創建一個JavaBean實例。。 
259 date:格式化輸出一個日期屬性。 
260 debug:生成一個調試鏈接,當單擊該鏈接時,可以看到當前棧值中的內容。 
261 i18n:指定國際化資源文件的baseName。 
262 include:包含其他的頁面資源。 
263 param:設置參數。 
264 property:輸出某個值。可以輸出值棧、StackContext 、ActionContext中的值。 
265 push:將某個值放入值棧。 
266 set:設置一個新的變數。 
267 text:輸出國際化信息。 
268 url:生成一個URL地址。 
269 表單標簽:
270 
271 
272 checkbox標簽:覆選框。 
273 checkboxlist標簽:根據一個集合屬性創建一系列的覆選框。 
274 combobox標簽:生成一個單選文本框和一個下拉列表框的組合。 
275 doubleselect標簽:生成一個相互關聯的列表框,該標簽由兩個下拉選擇框組成。 
276 datetimepicker標簽:生成一個日期、時間下拉列表框。 
277 head標簽:生成HTML頁面的HEAD部分。 
278 file標簽:在頁面上生成一個上傳文件元素。 
279 hidder標簽:生成一個不看見的用戶輸入元素。 
280 select標簽:生成下拉列表框。 
281 optiontransferselect標簽:創建兩個選項以及轉移下拉列表項,該標簽生成兩個下拉列表框,同時生成相應的按鈕,這些按鈕可以控制選項在兩個下拉列表之間移動、排序。 
282 radio標簽:單選框。 
283 optgroup標簽:生成一個下拉列表框的選擇組,下拉列表框中可以包含多個選擇組。 
284 token標簽:防用戶多次提交表單。 
285 textarea標簽:文本域。 
286 updownselct標簽:支持選項內容的上下移動。 
287 password表單:密碼表單域。 
288 textfield標簽:單行文本輸入框。 
289 非表單標簽:
290 
291 
292 actionerror標簽:輸出Action中getActionErrors()方法返回的異常信息。 
293 actionmessage標簽:輸出Action中getActionErrors()方法返回的信息。 
294 component標簽:生成一個自定義的組件。 
295 div標簽:AJAX標簽,生成一個div片段。 
296 fielderror標簽:輸出異常提示信息。 
297 tabbedPanel:AJAX標簽,生成HTML中的Tab頁。 
298 tree標簽:生成一個樹形結構。 
299 treenode標簽:生成樹形結構的節點。 
300 
301 
302 
303 
304 
305 
306 
307 
308 
309 
310 
311 
312 
313 
314 
315 
316 
317 
318 ____________________________________________________
319 Struts之LOGIC標簽庫詳解
320 
321 
322 
323 
324 1. logic:empty 
325 該標簽是用來判斷是否為空的。如果為空,該標簽體中嵌入的內容就會被處理。該標簽用於以下情況: 
326 1)當Java對象為null時; 
327 2)當String對象為""時; 
328 3)當java.util.Collection對象中的isEmpty()返回true時; 
329 4)當java.util.Map對象中的isEmpty()返回true時。 
330 eg. 
331 
332 
333 該句等同於: 
334 if (userList.isEmpty()) { 
335 ... 
336 } 
337 
338 
339 2. logic:notEmpty 
340 該標簽的應用正好和logic:empty標簽相反。 
341 
342 
343 3. logic:equal 
344 該標簽為等於比較符。 
345 eg1. 比較用戶的狀態屬性是否1,若為1,輸出"啟用"; 
346 eg2. 如果上例中的value值是動態獲得的,例如需要通過bean:write輸出,因struts不支持標簽嵌套,可採用EL來解決該問題。 
347 
348 
349 4. logic:notEqual 
350 該標簽意義與logic:equal相反,使用方法類似,略。 
351 
352 
353 5. logic:forward 
354 該標簽用於實現頁面導向,查找配置文件的全局forward。struts-config.xml文件中全局轉向 
355 eg. <logic:forward name="redirect"/> 
356 
357 
358 6. logic:greaterEqual 
359 為大於等於比較符。 
360 eg. 當某學生的成績大於等於60時,輸出“及格”: 
361 <logic:greaterEqual name="student" property="scores" value="60"> 
362 及格 
363 </logic:greaterEqual> 
364 7. logic:greaterThan 
365 此為大於比較符,使用方法同logic:greaterEqual; 
366 8. logic:lessEqual 
367 此為小於等於比較符,使用方法同logic:greaterEqual; 
368 9. logic:lessThan 
369 此為小於比較符,使用方法同logic:greaterEqual; 
370 10. logic:match 
371 此標簽比較對象是否相等; 
372 eg1. 檢查在request範圍內的name屬性是否包含"hello"串: 
373 <logic:match name="name" scope="request" value="hello"> 
374 <bean:write name="name"/>中有一個“hello”串。 
375 </logic:match> 
376 eg2. 檢查在request範圍內的name屬性是否已“hello”作為起始字元串: 
377 <logic:match name="name" scope="request" value="hello" location="start"> 
378 <bean:write name="name"/>以“hello”作為起始字元串。 
379 </logic:match> 
380 eg3. 
381 <logic:match header="user-agent" value="Windows"> 
382 你運行的是Windows系統 
383 </logic:match> 
384 11. logic:notMatch 
385 此標簽用於比較對象是否不相同,與logic:match意義相反,使用方法類似 
386 
387 
388 12. logic:messagePresent 
389 該標簽用於判斷ActionMessages/ActionErrors對象是否存在; 
390 eg. 如果存在error信息,將其全部輸出: 
391 <logic:messagePresent property="error"> 
392 <html:messages property="error" id="err" > 
393 <bean:write name="err"/> 
394 </html:messages> 
395 </logic:messagePresent > 
396 13. logic:messagesNotPresent 
397 該標簽用於判斷ActionMessages/ActionErrors對象是否不存在,使用方法與logic:messagePresent類似 
398 14. logic:present 
399 此標簽用於判斷request對象傳遞參數是否存在。 
400 eg1. user對象和它的name屬性在request中都存在時,輸出相應字元串: 
401 <logic:present name="user" property="name"> 
402 user對象和該對象的name屬性都存在 
403 </logic:present> 
404 eg2. 若有一個名字為“hello”的JavaBean,輸出對應字元串: 
405 <logic:present name="hello" > 
406 有一個名字為“hello”的JavaBean。 
407 </logic:present> 
408 eg3. 
409 <logic:present header="user-agent"> 
410 we got a user-agent header. 
411 </logic:present> 
412 15. logic:notPresent 
413 此標簽用於判斷request對象傳遞參數是否不存在,意義與了logic:present相反,使用方法類似。 
414 16. logic:iterator 
415 用於顯示列表為collection的值(List ,ArrayList,HashMap等)。 
416 eg1. 逐一輸出用戶列表(empList)中用戶的姓名: 
417 <logic:iterate id="emp" name="empList"> 
418 <bean:write name="emp" property="name"/><br> 
419 </logic:iterate> 
420 eg2. 從用戶列表中輸出從1開始的兩個用戶的姓名 
421 <logic:iterate id="emp" name="empList" indexId="index" offset="1" length="2"> 
422 <bean:write name="index"/>.<bean:write name="emp" property="name"/><br> 
423 </logic:iterate> 
424 eg3. logic:iterator標簽的嵌套舉例 
425 <logic:iterate id="emp" indexId="index" name="empList"> 
426 <bean:write name="index"/>. <bean:write name="emp" property="name"/><br> 
427 <logic:iterate id="address" name="emp" property="addressList" length="3" offset="1"> 
428 <bean:write name="address"/><br> 
429 </logic:iterate> 
430 </logic:iterate> 
431 17. logic:redirect 
432 該標簽用於實現頁面轉向,可傳遞參數。 
433 eg. <logic:redirect href="http://www.javaeye.com"/>
434 
435 
436 
437 
438 
439 
440 logic:iterate 
441 logic:iterate標簽用來迭代集合,您可以使用如下方式來為這個標簽指定其要疊代的集合:
442 
443 
444 使用一個運行時表達式,這個表達式的值是一個集合。 
445 用name屬性引用一個JSP Bean,這個JSP Bean本身就是一個集合。 
446 用name屬性引用一個JSP Bean,這個JSP Bean的一個屬性是一個集合,這時可以聯合使用property來指定這個集合。 
447 上面所提到的集合可以是:
448 
449 
450 對象類型或原子類型的數組(Array)。 
451 java.util.Collection的實現,包括ArrayList,Vector。 
452 java.util.Enumeration的實現。 
453 java.util.Iterator的實現。 
454 java.util.Map的實現,包括HashMap,Hashtable和TreeMap。 
455 如果您疊代的集合中含有null的值,這時需要採取一定的措施,因為這時logic:iterate不會在page作用域中創建對象。一般是使用<logic:present>標簽或<logic:notPresent>標簽來判斷一下。
456 
457 
458 下麵是logic:iterate疊代ArrayList的示例的對象引用關係和部分代碼:
459 
460 
461 
462 
463 圖示 3. logic:iterate中對象的引用關係
464 
465 
466 
467 
468 
469 
470 圖中的persons列表是在ListAction中填充的,在這裡只是簡單的加入了三個Person對象,在實際的應用中這些數據應該取自資料庫。具體的代碼如下:
471 
472 
473 public ActionForward execute(ActionMapping mapping,ActionForm. form,
474     HttpServletRequest request,   HttpServletResponse response) {
475 
476 
477 ListForm. listForm. = (ListForm) form;
478   
479 List<Person> persons = new ArrayList<Person>();
480   
481 Person person1 = new Person();
482 person1.setId("00001");
483 person1.setName("趙辰");
484   
485 Person person2 = new Person();
486 person2.setId("00002");
487 person2.setName("李為芳");
488   
489 Person person3 = new Person();
490 person3.setId("00003");
491 person3.setName("王微");
492   
493 persons.add(person1);
494 persons.add(person2);
495 persons.add(person3);
496   
497 listForm.setPersons(persons);
498   
499 return mapping.findForward("success");
500 }
501 
502 
503 標簽輸出的結果為:
504 
505 
506 00001-->趙辰 
507 00002-->李為芳 
508 00003-->王微
509 
510 
511 回頁首 
512 logic:present 
513 如果指定的值出現該標簽就會創建其標簽體內的內容。該標簽用於以下情況:
514 
515 
516 檢查具有指定名稱的cookie是否出現。 
517 檢查具有指定名稱的header是否出現。 
518 檢查具有指定名稱的JSP Bean是否出現 或 檢查具有指定名稱的JSP Bean中的property屬性是否出現。 
519 檢查request中指定名稱的參數是否出現。 
520 檢查當前的認證用戶是否與指定的安全形色相關聯。 
521 檢查當前認證的主體是否具有指定的名字。 
522 下麵的代碼示例了logic:present標簽檢查具有指定名稱User-Agent的header是否出現:
523 
524 
525 <logic:present header="User-Agent">
526 您的瀏覽器是<bean:header id="userAgent" name="User-Agent"/>
527     <bean:write name="userAgent"/>。<br/>
528 </logic:present>
529 
530 
531 logic:notPresent標簽的應用正好和logic:present標簽相反。
532 
533 
534 回頁首 
535 logic:messagesPresent 
536 logic:messagesPresent標簽用於以下情況:
537 
538 
539 在request作用域中存在一個ActionMessages對象,標簽的property屬性和ActionMessages中的property對應。 
540 在request作用域中存在一個ActionErrors對象,標簽的property屬性和ActionErrors中的property對應。 
541 存在一個String對象,將其轉換(構造)成ActionMessage然後在添加到ActionMessages中。 
542 存在一個String Array對象,將數組中的每一個String轉換成一個ActionMessage,在將其添加到ActionMessages中。 
543 標簽的message屬性值為true時將以Globals.MESSAGE_KEY為key在request作用域中查找Message,其它情況下,將name的值作為key查找,如果name 沒有出現,預設值為Globals.ERROR_KEY。 
544 
545 
546 下麵的代碼示例了logic:messagesPresent標簽的典型用法:
547 
548 
549 <logic:messagesPresent>
550 <ul>
551 <html:messages id="message">
552     <li><bean:write name="message"/></li>
553 </html:messages>
554 </ul>
555 </logic:messagesPresent>  
556 
557 
558 標簽logic:messagesNotPresent的應用正好和logic:messagesPresent的應用相反。
559 
560 
561 回頁首 
562 logic:empty 
563 logic:empty標簽是用來判斷是否為空的。如果為空,該標簽體中嵌入的內容就會被處理。該標簽用於以下情況:
564 
565 
566 當Java對象為null時 
567 當String對象為""568 當java.util.Collection對象中的isEmpty()返回true時 
569 當java.util.Map對象中的isEmpty()返回true時 
570 下麵的代碼示例了logic:empty標簽判斷集合persons是否為空:
571 
572 
573 <logic:empty name="listForm" property = "persons">
574 <div>集合persons為空!</div>      
575 </logic:empty>   
576 
577 
578 logic:notEmpty標簽的應用正好和logic:empty標簽相反。
579 
580 
581 回頁首 
582 logic:match 
583 logic:match標簽用來處理子串匹配問題。
584 
585 
586 如果指定的值匹配該標簽就會創建其標簽體內的內容。該標簽用於以下情況: 
587 
588 
589 檢查具有指定名稱的cookie是否與該標簽的value匹配。 
590 檢查具有指定名稱的header是否與該標簽的value匹配。 
591 檢查具有指定名稱的JSP Bean是否與該標簽的value匹配 或 檢查具有指定名稱的JSP Bean中的property屬性值是否與該標簽的value匹配。 
592 檢查request中指定名稱的參數值是否與該標簽的value匹配。 
593 
594 
595 下麵的代碼示例了logic:match標簽的典型用法:
596 
597 
598 <logic:present header="User-Agent">
599 <logic:match header="User-Agent" value="MSIE 6.0">
600     MS IE 6.0
601 </logic:match>
602 </logic:present>   
603 
604 
605 logic:notMatch標簽的應用正好和logic:match標簽相反。
606 
607 
608 回頁首 
609 logic:equal 
610 這裡要介紹的不只是logic:equal(=)標簽,而是要介紹一類標簽,這類標簽完成比較運算,包括:
611 
612 
613 logic:equal(=) 
614 logic:notEqual(!=) 
615 logic:greaterEqual(>=) 
616 logic:lessEqual(<=) 
617 logic:graterThan(>) 
618 logic:lessThan(<) 
619 該類標簽的用法類似,我們只介紹logic:equal標簽,其它的留給您自己去完成。
620 
621 
622 logic:equal是用來判斷是否相等的。如果相等,該標簽體中嵌入的內容就會被處理。該標簽用於以下情況:
623 
624 
625 比較由該標簽的cookie屬性指定的cookie的值是否與該標簽的value屬性值相等。 
626 比較由該標簽的header屬性指定的header的值是否與該標簽的value屬性值相等。 
627 比較由該標簽的name屬性指定的JSP Bean是否與該標簽的value屬性值相等(property屬性不出現)或比較由該標簽的name屬性指定的JSP Bean中的property屬性值是否與該標簽的value屬性值相等。 
628 比較由該標簽的parameter屬性指定的參數值(request中)是否與該標簽的value屬性值相等。 
629 回頁首 
630 logic:forward 
631 我覺得將forward和redirect這兩個動作放到一起對比著介紹更加有利於理解,基於此原因也就將logic:forward和logic:redirect這兩個標簽也拿到這裡一起介紹了。
632 
633 
634 讓我們看看這兩個動作的區別: 
635 
636 
637 forward是在servlet內部執行,瀏覽器完全不會感知到這個動作,原始的url也不會改變,瀏覽器重新裝載的話也只是對原始的請求進行簡單的重覆。 
638 redirect則分成兩個步驟:第一步是web應用程式告訴瀏覽器第二個url,然後瀏覽器向第二個url發送請求。 
639 
640 
641 redirect比forward慢,因為瀏覽器要做二次請求。還有就是要註意,在第一次的請求作用域(request作用域)內的bean對於第二次請求是不可見的。
642 
643 
644 理解了上面描述的區別也就知道了什麼時候該選用logic:forward標簽什麼時候該選用logic:redirect標簽了。logic:forward標簽完成PageContext.forward()或HttpServletResponse.sendRedirect(),如何選擇由控制器決定。logic:redirect標簽完成HttpServletResponse.sendRedirect()。
645 
646 
647 在使用logic:redirect標簽時我們可以向使用html:link一樣構造baseurl和query參數。如果您感興趣可以參考html:link標簽。
648 
649 
650 
651 
652 
653 
654 <s:action>標簽的用法
655 (2012-09-27 18:04:34)
656 轉載▼
657 標簽:
658 &lt;saction&gt;
659 struts2
660 雜談
661 分類: struts2
662 使用action標簽,可以允許在jsp頁面中直接調用Action,在調用Action時候,可以指定需要被調用的Action的name和namespace.如果指定了executeResult參數的屬性值為true,該標簽會把Action的處理結果(視圖資源)包含到本頁面中. 使用action標簽指定屬性有: 
663 
664 
665 id: 可選屬性,作為該Action的引用ID    
666    
667 name:必選屬性,指定調用Action    
668    
669 namespace:可選屬性,指定該標簽調用Action所屬namespace    
670    
671 executeResult:可選屬性,指定是否將Action的處理結果包含到本頁面中.預設值為false,不包含.    
672    
673 ignoreContextParam:可選參數,指定該頁面的請求參數是否需要傳入調用的Action中,預設值是false,即傳入參數. 
674 
675 
676  <s:action name="login" executeResult="true" namespace="/"></s:action>  
677 
678 
679 傳遞參數 
680 
681 
682    <s:action name="actinName" executeResult="true" namespace="/"> 
683     <s:param name="currentPage" value="傳遞的值"></s:param> 
684    </s:action> 
685 
686 
687 <s:param ></s:param>是以request方式的值的,而不是以參數傳值  
688 
689 
690 所以request.getParameter("")會獲取不到值 
691 
692 
693 通過request.getAttribute("")方式可以獲取 
694 
695 
696 另外:使用<s:param ></s:param> value指代的是action定義的對象的名稱,而不是一個值 
697 
698 
699 和 <s:textfield>中的name是一個意思,所以要要傳遞字元串的不能把值寫value中而應該寫到 
700 
701 
702 <s:param >寫到這裡</s:param> 
703 例如: 
704 struts.xml如下配置 
705 <package name="reportList" namespace="/reportList" extends="default"> 
706 <action name="tab_*" action="xxxx" method="{1}" 
707 <result></result> 
708 </action> 
709 </package> 
710 頁面載入如下段 
711 <s:action na 
712 me="tab_gotoHeader" namespace="/reportList" executeResult="true"> 
713 <s:param name="headerMap" value="headerMap"></s:param> 
714 <s:param name="scopeId" value="1"></s:param> 
715 <s:param name="reportRemark" value="indicator.concept"></s:param> 
716 <s:param name="headerMap['lbName']" value="indicator.description"></s:param> 
717 </s:action> 
718 xxx.action中只要set,get headerMap,scopeId就可以拿到值了 


2017-08-0815:19:01摘自http://blog.csdn.net/ye1992/article/details/8333616

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • .NET 微服務:適用於容器化 .NET 應用的體繫結構 容器和 Docker 簡介 什麼是 Docker? Docker 術語 Docker 容器、映像和註冊表 為 Docker 容器選擇 .NET Core 還是 .NET Framework 通用指南 何時為 Docker 容器選擇 .NET ...
  • 當用戶在客戶端上請求本地圖片的時候,我們需要把本地的圖片展示。 1.在控制器端把圖片轉換成流的形式 2.前臺請求控制器端的方法,輸出圖片 控制器端: public class ImageController : Controller { private static readonly string ...
  • 基於 HtmlHelper 自定義擴展Container Intro 基於 asp.net mvc 的許可權控制系統的一部分,適用於對UI層數據呈現的控制,基於 HtmlHelper 的擴展組件 Code 基於 asp.net mvc 的許可權控制系統示例代碼:https://github.com/We ...
  • 前言 很多同學想對CAP的機制以及用法等想有一個詳細的瞭解,所以花了將近兩周時間寫了這份中文的CAP文檔,對 CAP 還不知道的同學可以先看一下 "這篇文章" 。 本文檔為 CAP 文獻(Wiki),本文獻同時提供中文和英文版本,英文版本目前還在翻譯中,會放到Github Wiki 中。 目錄 前言 ...
  • 本例演示在母版頁中的銨鈕事件去獲取某些子頁的內容。在母版本中,有一個銨鈕事件。當瀏覽某些子頁時,用戶點一點母版頁的銨鈕,能去獲取當前頁的內容。 子頁很多,但我們並不是每一個子頁的內容均要去獲取,而且每個子頁的內容不一樣。因此你需要讓父頁的事件知道,哪些子頁是需要獲取的。說白了,這就是平時所說的介面。 ...
  • 【申明】:本人.NET Core小白、Linux小白、MySql小白、nginx小白。而今天要說是讓你精通Linux ... 的開機與關機、nginx安裝與部署、Core的Hello World ...等。 首先,入門文章園子裡面已經很多了。這裡再做個整理和備忘。您也可以根據目錄挑著看。(親測多次可 ...
  • Tag Helpers 提供了在視圖中更改和增強現有HTML元素的功能。將它們添加到視圖中,會經過Razor模板引擎處理並創建一個HTML,之後再返回給瀏覽器。 ...
  • 最近在看《編程珠璣》,挺有意思,驚嘆於作者思維的巧妙。閑來無事,就想著開了博客練練手。內容都是從書上的,我就用C#簡單實現了一下。鄙人只是剛出道的小小程式猿,第一次寫博客,實在寫不出太優秀的代碼,望看到的人多多見諒哈。。有錯誤或者意見啥的隨便提,也是我學習的機會。 書上的內容大致是:給定一個英語詞典 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...