JS加载JSP的问题

songjun1018 2008-10-06 03:13:29
在a.jsp中,
<c:if test="${isShowTable == 'y'}">
<div id="listTable"><jsp:include flush="false" page="fxComplaintMatchedByPhone.jsp" /></div>
</c:if>
根据request中的isShowTable 来判断时候要显示这个jsp页面,但是如果想把这段代码放到JS中,如何写?

if(isShowTable == 'y'){
document.write('<div id="listTable"><jsp:include flush="false" page="fxComplaintMatchedByPhone.jsp" /></div>');
}
这样的话,在成功加载a.jsp之后,是不是显示的就只有fxComplaintMatchedByPhone.jsp的内容,而a.jsp中原来的内容就没有了?
应该怎么办?
...全文
882 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
songjun1018 2008-10-07
  • 打赏
  • 举报
回复
1楼:这个办法你确定能行?可是我怎么没成功:
2楼:不太明白说的是什么意思,能说的再明白点不?
laodizhuq 2008-10-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 songjun1018 的帖子:]
在a.jsp中,
<c:if test="${isShowTable == 'y'}">
<div id="listTable"> <jsp:include flush="false" page="fxComplaintMatchedByPhone.jsp" /> </div>
</c:if>
根据request中的isShowTable 来判断时候要显示这个jsp页面,但是如果想把这段代码放到JS中,如何写?

if(isShowTable == 'y'){
document.write(' <div id="listTable"> <jsp:include flush="false" page="fxComplaintMatchedByPhone.jsp" /> </div>');
}
这…
[/Quote]

js是在节目加载时在客户端才执行到,而<jsp>标签是在服务端执行的。如果要用include就不能在js中执行除非用ajax动态加载。
要么用<jsp>标签include进来,然后再js中控制是否显示该内容
songjun1018 2008-10-07
  • 打赏
  • 举报
回复
在网上找了段代码,可是却报404错误,找不到页面。。。
又是哪里出了问题???
下面是代码。

//初始化函数块
var query = function(){};
//把方法作为参数传入按顺序直到其中的一个成功执行
var Try = {
these:function(){
var returnValue;
for(var i = 0, length = arguments.length; i < length; i++){
var lambda = arguments[i];
try{
returnValue = lambda();
break;
}catch(e){}
}
return returnValue;
}
};
//ajax应用,有xml方法和json方法可以到server端请求并返回数据
var ajax = query.prototype = {
create: function(){
return Try.these(
function(){return new XMLHttpRequest()},
function(){return new ActiveXObject('Msxml2.XMLHTTP')},
function(){return new ActiveXObject('Microsoft.XMLHTTP')}) || false;
},
xml: function(sXML,sURL){
var oXML = new ActiveXObject("MSXML2.DOMDocument");
oXML.async = false;
oXML.loadXML(sXML);
var xmlResult = this.post(oXML,sURL);
return xmlResult.xml;
},
post:function(oXML,sURL){
var oXmlHttp = this.create();
oXmlHttp.Open("POST ",sURL,false);
oXmlHttp.Send(oXML);
return oXmlHttp.responseXML;
},
json: function(url , type){
var obj = this.create();
obj.open("POST",url,false);
obj.send(null);
if(obj.responseText != " "){
if(type == 'text '){
return obj.responseText;
}else{
eval( "var data = " + obj.responseText);
return data ;
}
}
}
};

var isShow = function(){
var s = ajax.json("fxComplaintMatchedByPhone.jsp","text ");
var listTable = document.getElementById("listTable");
listTable.innerHTML = s;
}
nj_link 2008-10-07
  • 打赏
  • 举报
回复
document.getElementById("DIV").innerHTML = "HTML内容";
方法是可以的,但是要在页面加载完后触发,不然是得不到obj = document.getElementById("DIV")的,
如果把这一段放在末尾可以得到obj 但是页面不刷新是不会显示出来的。
像这样非要有一个按钮才行:
<html>
<head>
</head>
<body>

<div id="div1">
ccccc
</div>
<input type = "button" onclick = "clicked()" value = "click">
</body>
<script language="javascript">
function clicked(){
var obj = document.getElementById('div1');
obj.innerHTML="<font color=red >XXXXXXXXXX <font> ";

}
</script>

</html>
yeah920 2008-10-07
  • 打赏
  • 举报
回复
帮忙顶一下,让了解的人来解答.
songjun1018 2008-10-07
  • 打赏
  • 举报
回复
劳驾能不能给写个实例?
就是因为不知道所以才来问大家的。
  • 打赏
  • 举报
回复
这个错误也太菜了吧,jsp命令jsp:include是需要jsp容器来处理的,你放在客户端输出出来
有什么用啊?浏览器可不认什么jsp命令,会被原样输出的,还是考虑用ajax吧
<div id="listTable">
<jsp:include flush="false" page="fxComplaintMatchedByPhone.jsp" />
</div>'
shagoo 2008-10-06
  • 打赏
  • 举报
回复
为什么不用ajax来做
从 server 端请求需要的内容然后填入 listTable div 中
liuyilidan 2008-10-06
  • 打赏
  • 举报
回复
加一个DIV
document.getElementById("DIV").innerHTML = "HTML内容";

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧