将Struts 2属性传递给javascript方法:得到奇怪的值

时间:2015-08-11 10:51:14

标签: javascript jsp struts2

在这个例子中,我不会将属性值(action属性)传递给我的js函数,如下所示:

这是我的Action类:

public class XXXX {

    private List<String> numberCanBuyList;
    private float price;

    all getters and setters are used
}

这是我的jsp页面:

<s:hidden id="priceUnit" name="priceUnit" value="price"/>
<s:select id="canBuylist" name="bundle" list="numberCanBuyList" theme="simple" onChange="javascript:updateProperty('%{#priceUnit}')">
.....
<script type="text/javascript">
function updateProperty(n)
{   
var b = document.getElementById("canBuylist").value;
alert(n); 
alert(b);
}

提醒(n)告诉我:%{#priceUnit}而非实际价值 我做错了吗?

我也尝试这样的事情,我也有同样的行为:

onChange="updateProperty(price)"> show me price
onChange="updateProperty('%{price}')"> show me %{price}

1 个答案:

答案 0 :(得分:0)

值堆栈中没有这样的键priceUnit。并且Struts试图评估表达式%{#priceUnit}但是没有做到,所以值保持不变。但是,如果您已经在隐藏字段中获得price的值,则不需要此表达式。要从隐藏元素中获取值,您可以使用类似

的javascript
<s:select id="canBuylist" name="bundle" list="numberCanBuyList" theme="simple" onChange="updateProperty(document.getElementById('priceUnit').value)">