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值,但是這個卻可以了,沒明白,反正遇到這樣的問題,就是兩個字:折騰,折騰單引號與雙引號,折騰標簽位置,總會成功的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM