後臺代碼:
if(this.Request["type"]!=null)
{
aaa=this.Request["type"].ToString();
try
{
bbb=Convert.ToInt32(strType);
}
catch{}
}
request.setAttribute("bbb",bbb);
在目標JSP頁面這樣寫<input type="hidden" id="info" value="<%=request.getAttribute("bbb")%>"/>,(或者${request.bbb})
而後在Script中直接經過操做dom取得該值,var bbb=document.getElementById("info").value;
不過這樣得到的值已是個字符串了,由於不管是<%=request.getAttribute("bbb")%>仍是表達式,執行的對象的toString方法輸出,
若是是數組的時候能夠考慮用C標籤,循環輸出每一個數組元素,而後用document.getElementByName方法獲取
假如我想用session把數組bbb的值從後臺傳到前臺,後臺的代碼該怎樣寫了?到了前臺的Script中怎樣來獲取?
後臺:javascript
public String getSeesionArrays() {css
HttpSession session =ServletActionContext.getRequest().getSession();html
String [] bbb={"第一個元素","第二個元素","第三個元素","第四個元素","第五個元素"};java
try {web
session.setAttribute("bbb", bbb);spring
} catch (Exception e) {數組
e.printStackTrace();瀏覽器
}session
return "details";mvc
}
--
固然無論怎麼樣,用servlet,struts,webwork,spring mvc仍是純JSP,只要能將數組bbb的值設置成session範圍屬性,而後可以跳轉到目標JSP頁面或是瀏覽器不關閉的狀況下,到任何頁面,能夠經過以下方式得到
<%@ page language="java" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>資源列表</title>
<style type="text/css">
</style>
<script language="javascript" type="text/javascript">
function initialJSP(){
var bbb=document.getElementsByName("array");
var info="";
for( i=0;i<bbb.length;i++){
info +=bbb[i].value+",";
}
alert(info);
}
</script>
</head>
<body onLoad="initialJSP()">
<h1>
資源列表
</h1>
<ul>
<%
String bbb[]=(String[])session.getAttribute("bbb");
for(String s:bbb){
%>
<li>
<input type="hidden" name="array" value="<%=s%>" />
<%=s %>
</li>
<%
}
%>
</ul>
</body>
</html>
固然,按照要求,JSP頁面當中要不存在<%%>,也就是沒有JAVA代碼纔是合格的,可是這裏就勉強那這個作個事例!而後輸出結果以下圖,顯然已經取到了bbb數組,不過都是String類型的,