![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
各位大侠有谁知道如何让我的struts标签在这个JS中可以使用
如果有学javaEE,请去重温servlet、jsp的基础知识。弄清楚基本概念,面对这样的问题……
struts标签写在jsp里,jsp是服务器端代码,jsp既是servlet,编译之后为class字节码
javascript为浏览端解释执行代码在客户端,写在jsp里的javascript会被向浏览器输出,而不是在jsp脚本里执行。struts标签是在服务器端完成的,js是在前端执行的,所以没有“struts标签在js中使用这种说法”,struts标签先执行,然后和写在jsp里的js一起被输出到浏览器,jsp输出到浏览器的不是struts标签,而是执行过之后js字符串,在前台只有javascript代码执行,没有struts标签.
上面两条只是想让你弄清楚基本概念,懂了这些基本概念即不存在上面的问题了,你需要知道这个执行顺序,jsp中的jsp标签,ognl表达式如果是struts2的话,还有EL,JSTL表达式在jsp编译的时候是个顺序,html、css、javascript的执行时机
最好不要把jsp脚本和js脚本写到一起,他们不是一种语言,不同时执行,乍一看起来还容易让你误解,而且很难维护,因为你struts处理的是后台逻辑,js处理的是前台逻辑.
<script type="text/javascript">
function showMsg() {
<s:if test="#parameters.msg==null">
alert("no msg");
</s:if>
<s:else>
alert("<s:property value='#parameters.msg' />");
</s:else>
}
</script>
<button type="button" onclick="showMsg()">showMsg</button>
一般来说Js代码是不能引用Struts标签的。
因为Struts标签是运行在页面生成之前,JS代码是运行在页面生成之后。
不过我们可以利用Struts标签来构造JS代码,间接达成Struts标签控制JS效果的作用。
关键看你的逻辑对不对。
for(var i=0;i< spjList.length; i++)
{
}
if(sphere[0]==treenode.id)
{
}
难道你是因为不会在 js 中取 el 表达式的值?