js中使用s(c)標籤

在js或者jquery中使用s標籤,其實並不難理解,s標籤也只是一個標籤而已,當你想象成js+s標籤=js+html標籤就理解了

例如:

<script type="text/javascript">

var  username = '<s:property value="%{user.username}"/>';

var password = '<s:property value="#session.user.password"/>';

var sex = ""; 

<s:if test="%{user.flag}">
  sex= <s:property value="%{user.sex}"/>;
 </s:if>

</script>

通過上面的方式,就可以在js中通過s標籤直接獲得後臺數據,不用通過html標籤元素中轉或者通過ajax了,夠簡單

PS:

1、在js中使用s標籤進行取值,需要將s標籤寫在單引號或者雙引號內部,否則頁面會報警告,如果是<s:if>這樣的標籤就沒有限制了,測試的s標籤不多,別的問題就不知道了,嘿嘿

2、如果你想在js文件中使用s標籤,是取不出來值的,解決辦法是:在純js的<script>標籤內部定義變量並進行取值,然後在js文件中引用你定義的變量

再多說一點:

下面這個例子中單引號的使用在於:通過EL表達式取值,如果取出來,則顯示;如果出不出來值,則不顯示,也不顯示null,如果使用${param.reqFormId}==null做判斷,永遠也不會相等

例如:注意單引號的使用,也可以是雙引號

 var pageCount='${pagination.pageCount}';
 if(pageCount==1){
  alert("ok");
 }

或者

 if(pageCount==‘1’){
  alert("ok");
 }
注意單引號
 var formId='${param.reqFormId}'==''?'0' : '${param.reqFormId}';

 

在s標籤中使用,腳本標籤,位置、單、雙引號的使用錯誤與正確的對比(使用tomcat5.0.28以上版本,tomcat5.0.28一下,下面的方式沒有錯):

錯誤:

     <% String a = request.getAttribute("key").toString();  %>
      <s:if test="<%= a.equals("mainMember") %>"' >
        。。。。。。。

      </s:if>

錯誤分析:雙引號套用雙引號指定是不允許的,所以要將腳本標籤外層的雙引號改爲單引號

     <% String a = request.getAttribute("key").toString();  %>
      <s:if test='<%= a.equals("mainMember") %>’ >
        。。。。。。。

      </s:if>

採用這樣的方式回報:

The method setTest(String) in the type ElseIfTag is not applicable for the arguments (boolean)

意思是:該方法setTest(字符串)類型ElseIfTag中是不適用的參數值(布爾值)

所以再換一種方式:

     <% String a = request.getAttribute("key").toString();  %>
      <s:if test='"mainMember".equals(<%=a %>)' >
        。。。。。。。

      </s:if>

ok,不過我感覺這個和上面那個都是獲得的boolean值,但是這個卻可以了,沒明白,反正遇到這樣的問題,就是兩個字:折騰,折騰單引號與雙引號,折騰標籤位置,總會成功的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章