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,如果使⽤${qFormId}==null做判断,永远也不会相等
例如:注意单引号的使⽤,也可以是双引号
var pageCount='${pagination.pageCount}';
if(pageCount==1){
alert("ok");
}
或者
if(pageCount==‘1’){
alert("ok");
}
注意单引号
var formId='${qFormId}'==''?'0' : '${qFormId}';
在s标签中使⽤,脚本标签,位置、单、双引号的使⽤错误与正确的对⽐(使⽤tomcat5.0.28以上版本,tomcat5.0.28⼀下,下⾯的⽅式没有错):
错误:
<% String a = Attribute("key").toString();  %>
<s:if test="<%= a.equals("mainMember") %>"' >el表达式获取session中的值
。。。。。。。
</s:if>
错误分析:双引号套⽤双引号指定是不允许的,所以要将脚本标签外层的双引号改为单引号
<% String a = Attribute("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 = Attribute("key").toString();  %>
<s:if test='"mainMember".equals(<%=a %>)' >
。。。。。。。
</s:if>
ok,不过我感觉这个和上⾯那个都是获得的boolean值,但是这个却可以了,没明⽩,反正遇到这样的问题,就是两个字:折腾,折腾单引号与双引号,折腾标签位置,总会成功的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

jslt c标签库手册
« 上一篇
JSP三大指令元素,七大动作元素,三大脚本元素
下一篇 »

发表评论

推荐文章

热门文章

最新文章

标签列表