小小总结一下JSP、JavaSript的传参,仅作为一个备忘。
JSP:
[样例1]
<a href="productinfo.jsp?id=<%=PID%>&page=<%=intPage%>&keyword=<%=keyword%>&gsytype=<%=gystype%>"><%=ProductName%></a>
[说明1]
这个链接的母体为<%=ProductName%>,是本页的一个变量。它链接到新的页面productinfo.jsp,并给productinfo.jsp传递了4个参数id、page、keword、gsytype。
在新的页面productinfo.jsp中,要获得上个页面传来的值,你需要:
String id="";
String page="";
String keyword="";
id=request.getParameter("id");
page=request.getParameter("page");
keyword=request.getParameter("keyword");
gystype=request.getParameter("gystype");
if (id==null) id="";
if (page==null) page="";
if (keyword==null) keyword="";
if (gystype==null) gystype="";
--------------------------------------------------
例外是:response.sendRedirect("productinfo.jsp?id="+id);
我还不太清楚为什么不能写成
response.sendRedirect("productinfo.jsp?id=<%=id%>");
如果有知道的朋友,请留言指点 :)
--------------------------------------------------
[样例2]
对于表单,你就不需要通过“?”的形式传参了。注意的是,表单的提交是在<form>里的。
<form action="productinfo_t.jsp" method="post" name="formcontent" onSubmit="javascript:return checkform();">
[说明2]
表单里的所有表单控件要向productinfo_t.jsp提交参数,不要写成form action="productinfo_t.jsp?Productname=<%=ProductName%>&..."的形式,直接在 productinfo_t.jsp里写:
String ProductCode="";
String ProductName="";
String ProductPara="";
ProductCode=request.getParameter("ProductCode");
ProductName=request.getParameter("ProductName");
ProductPara=request.getParameter("ProductPara");
if (ProductCode==null) ProductCode="";
if (ProductName==null) ProductName="";
if (ProductPara==null) ProductPara="";
JavaScirpt:
[样例]
<input name="upload" type="button" onClick="javascript:uploadpic('<%=id%>');" value="上传图片">
<script language="javascript">
function uploadpic(id)
{
window.open("upload.jsp?id="+id+"","","height=250,width=500");
}
</script>
[说明]
第一句是jsp语句,表明在点击upload按钮时,触发javascript 的uploadpic()事件。此处<%=id%>是String类型,所以要加上两个单引号''。如果id是数字类型(int、long..)则不加单引号。
JavSript里,函数参数id不要写成<%=id%>,注意一点
window.open("upload.jsp?id="+id+"","","height=250,width=500"); 是JavaSript的语法
不要写成
window.open("upload.jsp?id=<%=id%>","","height=250,width=500");
卡卡