<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ∪∩deniable Design

    個人JAVA版GAE(google app engine),struts2+jpa+jQuery開發,互相交流 http://iunbug.appspot.com/
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于Struts 2.0.11與表達式

    Posted on 2008-08-15 21:43 ∪∩BUG 閱讀(434) 評論(0)  編輯  收藏 所屬分類: Struts2學習筆記

     

     1Struts 筆記
     22008 08 15
     3當你使用struts 2 tags時,如果使用代碼:
     4<s:set name="name" value="<%= "'" + request.getParameter("name") + "'" %>" />
     5或者
     6
     7<s:set name="name"value="${param.name}" />
     8都會發生下列錯誤:
     9According to TLD or attribute directive in tag file, attributevalue does not accept any expressions
    10而得使用:
    11<s:set name="name" value="#parameters.name[0]" />
    12才行
    13原因可能是因為你使用了<%..%>代碼 or JSP EL表達式。Struts 2從 version2.0.11開始已經不支持strutstag與JSP EL表達式混合使用了(不在struts tag里使用EL還是可以的)
    14
    15
    16技巧(Trick Tip):
    17對于<s:property>,是使用
    18<s:property value="#parameters.name"/>
    19而對于<s:set>,則要使用(否則出錯):
    20<s:set name="name" value="#parameters.name[0]" />
    21
    22但是如果使用struts include tag來傳參數,則<s:property><s:set>無法獲取傳來的參數,如:
    23<body>
    24<s:include value= "/welcome.jsp">
    25<s:param name="name">Scott</s:param>
    26</s:include>
    27</body>
    28那么在webcome.jsp里通過<s:property><s:set>無法獲取"name"參數:
    29<s:property value="#parameters.name" />
    30<s:set name="name"value="#parameters.name[0]" />
    31而只能夠用
    32<%request.getParameter("name")%>
    33來獲取
    34
    35例如:
    36<%@ page contentType="text/html; charset=UTF-8"%>
    37<%@ taglib prefix="s" uri="/struts-tags"%>
    38<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    39<html>
    40    <head>
    41        <title>Condition Flow</title>
    42    </head>
    43    <body>
    44        <h3>
    45            Condition Flow
    46        </h3>
    47
    48        <!-- 注意"'" + request.getParameter("name") + "'"這里的單引號 -->
    49        <!-- s:if test="#name == 'Max'" 判斷取出name的值是否與Max相等,#表示取出值 -->
    50        <s:set name="name"
    51            value="#parameters.name[0]" />
    52
    53        <s:if test="#name == 'Max'">
    54            Max's file here
    55        </s:if>
    56        <s:elseif test="#name == 'Scott'">
    57            Scott's file here
    58        </s:elseif>
    59        <s:else>
    60            Other's file here
    61        </s:else>
    62    </body>
    63</html>
    64<!--
    65            這里有點小技巧:
    66            本來可以用#parameters.name[0]來獲得,請求中name的值。但是,在我實現include例子時,
    67            無論我用param標志給name賦任何值,#parameters里面不會含有任何值,所以#parameters.name也為空值。
    68            
    69            其原因為:
    70            當使用include標志時,被包含的頁面(included)里#parameters拿到的是包含頁面里的請求參數。
    71            
    72            因此,這里必須手工調用request.getParameter("name")。        
    73-->
    74
    主站蜘蛛池模板: heyzo亚洲精品日韩| 亚洲理论片中文字幕电影| 亚洲精品无码永久在线观看| 国产精品久久久亚洲| 久久无码av亚洲精品色午夜 | 亚洲成a人片在线播放| 国产偷v国产偷v亚洲高清| 最新亚洲卡一卡二卡三新区| 叮咚影视在线观看免费完整版| 亚洲性色精品一区二区在线| 一级特黄a免费大片| 成人无遮挡毛片免费看| 亚洲av无码成h人动漫无遮挡 | 最近最新MV在线观看免费高清| 8888四色奇米在线观看免费看| 黄色网址在线免费| 国产婷婷高清在线观看免费| 亚洲成人网在线观看| 免费视频一区二区| 亚洲精品资源在线| 免费看片A级毛片免费看| 亚洲欧洲日韩国产综合在线二区| 亚洲AV无码一区二区乱孑伦AS| 久久久久久亚洲精品影院| 免费无码看av的网站| 黄网站色视频免费看无下截| 在线观看人成网站深夜免费| 精品久久久久久亚洲精品| 3344免费播放观看视频| 亚洲今日精彩视频| 一二三四影视在线看片免费| 另类小说亚洲色图| 免费一级特黄特色大片在线| 亚洲精品无AMM毛片| 无码国产精品久久一区免费| 国产精品无码亚洲一区二区三区| 免费看搞黄视频网站| 亚洲婷婷综合色高清在线| 日韩免费视频观看| 免费播放国产性色生活片| 免费成人黄色大片|