struts2的ajax标签中executescripts的问题

我刚开始学习struts2中的ajax部分。立刻遇到一个问题
我先按照书上的例子,写一个页面(test.jsp),上面有1个submit按键,对应1个action,用来刷新div。其中action就是链接到另外一个页面,而页面中就是写了一个alert的警告框,这时如果点击按钮,就会出现对应的警告框,没有问题。
而后我又写一个页面(test1.jsp),里面是一个按钮,并且在此页面中有一段script程序,再点击这个按钮的时候会出现一个警告框,然后将上面说的按钮对应的action的result设置为此页面。也就是说当点击按钮的时候div会显示刚写的页面。但是这时候问题出现了:如果第三个按钮没有设置executescripts=“true”的话会显示页面中的按钮,但是点了没有反应;如果设置了为true的话div就会提示unfinder。请问这是怎么回事呀?
大致代码如下:
test.jsp:
[code="java"]




/s:form[/code]

action配置:
[code="java"]
/test1.jsp
[/code]

test1.jsp:
[code="java"]<br> function test(){<br> alert(&quot;test&quot;);<br> }<br>


test
[/code]
[b]问题补充:[/b]
恩,下面说如果是没有引入jacascript会导致错误,但是为什么设置了executescripts=“true”后还是执行不了js程序呢?
[b]问题补充:[/b]
哦。听了下面2L的介绍可能就是这个样子了。
但如果我想用div层引用一个其他包含js程序的页面,而且还可以执行对应的js程序,该怎么办呢?

3个回答

其实你就是想隐藏js实现吧.貌似我是没想到办法.但是肯定不代表没办法.
如果你不是想隐藏而是只想返回一个可以调用js的代码

那你可以把你需要定义的代码写在包含页里 那么ajax返回页就可以调用了

比如本例

包含页
<%@page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@taglib prefix="sx" uri="/struts-dojo-tags"%>



[color=red] [/color]





/s:form

ajax页




test

希望能对你有帮助

补充:如果在sx:submit调用onclick等会使ajax失效,原因不明,知道的兄弟请告知

你的问题我没听懂
不过
executeScripts="true"
表示
如果为true,则服务器返回内容中JS代码被执行 反之不执行

function test(){ alert("test"); }



test

试问 如果

function test(){ alert("test"); }

不存在
javascript:test();">能不报错吗?

熬夜啊熬夜
executescripts解释为 如果为true,则服务器返回内容中JS代码[color=red]被执行[/color] 反之[color=red]不执行 [/color]
注意我的红字
是这么理解的
比如目标页面含

alert("test");

OK,他在ajax调用正确的被执行了.如果是

function test(){ alert("test"); }

OK.他也在ajax调用正确的被执行了,但是 [color=red]他是函数,单独是没有效果的,每人调用啊[/color]

问题就很显然了,executescripts是执行.不是包含 从名字就可以看出来

你真正返回的只有test 这段,js部分在远端就执行了而不会包含进这个页面.现在知道为什么找不到了吧

其实我很旧没用struts2了. 不知道还是不是这样.

立即提问
相关内容推荐