我刚开始学习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"]
action配置:
[code="java"]
/test1.jsp
[/code]
test1.jsp:
[code="java"]<br> function test(){<br> alert("test");<br> }<br>
其实你就是想隐藏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"%>
你的问题我没听懂
不过
executeScripts="true"
表示
如果为true,则服务器返回内容中JS代码被执行 反之不执行
试问 如果
function test(){ alert("test"); }不存在
javascript:test();">能不报错吗?
熬夜啊熬夜
executescripts解释为 如果为true,则服务器返回内容中JS代码[color=red]被执行[/color] 反之[color=red]不执行 [/color]
注意我的红字
是这么理解的
比如目标页面含
OK,他在ajax调用正确的被执行了.如果是
function test(){ alert("test"); }OK.他也在ajax调用正确的被执行了,但是 [color=red]他是函数,单独是没有效果的,每人调用啊[/color]
问题就很显然了,executescripts是执行.不是包含 从名字就可以看出来
你真正返回的只有test 这段,js部分在远端就执行了而不会包含进这个页面.现在知道为什么找不到了吧
其实我很旧没用struts2了. 不知道还是不是这样.