簡體   English   中英

javascript 不適用於 struts html 標簽

[英]javascript not working on struts html tag

我的 Struts2 項目的 jsp 頁面中有以下代碼

<select id="amountSelect">
 <s:iterator value="rateCardDetailsList" status="listStatusAmount">
    <option value="<s:property value='#listStatusAmount.index'/>"><s:property value="rechargeAmount"/></option>
</s:iterator>
</select>

和相應的腳本

 $(document).ready(function() {
    $("#amountSelect").change(function(){
        var v= $("#amountSelect").val();
        var r= "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";
        alert(r);
    });
});

其中rateCardDetailsList是包含變量mobileRate的特定 bean( Object ) 的mobileRate 但是我在r的位置發出警報( alert(r); )時為空。 在檢查元素時,如下所示

 $(document).ready(function() {
        $("#amountSelect").change(function(){
            var v= $("#amountSelect").val();
            var r= "";
            alert(r);
            
        });
    });

如果我直接給出索引,而不是變量v ,我得到的值即

 var r= "<s:property value='rateCardDetailsList[1].mobileRate'/>";
    alert(r);

確實在警報中給出了一個值。 可能是什么原因?

這是非常無效的 JSP + JavaScript:

var r = "<s:property value='rateCardDetailsList["+ v +"].mobileRate'/>";

退后一步,想想所有這些代碼在哪里執行。

JSP,例如,自定義標記(這里是<s:property>標記)在服務器端評估,然后再將任何內容發送到瀏覽器。

JavaScript 在客戶端執行,在服務器上呈現並發送到客戶端。 在這里,您嘗試將服務器端代碼(標記)與 JavaScript 代碼(字符串連接)混合在一起。 甚至不會接近工作。

要使其工作,您需要在服務器端呈現有效的 JavaScript,或者使用 Ajax 並動態獲取 JS 值等。呈現 JS 數據結構(例如,JSON)很常見,但還有許多其他選項。

它不是null而是空字符串""

這是因為property標記不返回值。

在解析 OGNL 表達式時拋出並在內部捕獲異常。 在這種情況下, property標簽不返回任何內容。

struts2

[英]struts2 <s:url in html script tag not working

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM