转载

详解JSP页面传值

这周在调支付宝的接口。期间需要把我方程序处理后的参数(交易金额)按照规定的格式传递给支付宝的接口。因为中途要设计到我方程序对一些数据的处理,所以并不方便直接传值过去。思来想去,决定先把我方的数据提交给webwork的Action进行处理,也就是对数据库进行操作;然后把交易金额以及支付宝接口需要的其他参数一并传递给一个JSP页面,并让这个JSP页面在把action直接指向支付宝的网关接口,注意:中间过程中这个JSP页面时不显示出来的。为此,做了如下测试:建立两个JSP页面传值,tes1.jsp和test2.jsp。代码如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%> 
  2. <%  
  3. Stringpath=request.getContextPath();  
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()
    +":"+request.getServerPort()+path+"/";  
  5. %> 
  6. > 
  7. <html> 
  8. <head> 
  9. <basehrefbasehref="<%=basePath%>"> 
  10.  
  11. <title>MyJSP'test1.jsp'startingpagetitle> 
  12. <metahttp-equivmetahttp-equiv="pragma"content="no-cache"> 
  13. <metahttp-equivmetahttp-equiv="cache-control"content="no-cache"> 
  14. <metahttp-equivmetahttp-equiv="expires"content="0"> 
  15. <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> 
  16. <metahttp-equivmetahttp-equiv="description"content="Thisismypage"> 
  17. <metahttp_equivmetahttp_equiv="refresh"content="5"> 
  18.  
  19. <scriptlanguagescriptlanguage="javascript"type="text/javascript"> 
  20. functionexecute(){  
  21. varobj=document.getElementById("name");  
  22. document.form1.action="alipay/test2.jsp?param="+obj.value;  
  23. document.form1.submit();  
  24. }  
  25. script> 
  26. head> 
  27. <bodyonloadbodyonload="execute();"> 
  28. <formnameformname="form1"method="post"> 
  29. <table> 
  30. <tr> 
  31. <td> 
  32. 测试JSP页面传值<inputtypeinputtype="text"id="username"value="luodada"> 
  33. td> 
  34. tr> 
  35. table> 
  36. form> 
  37. body> 
  38. html> 

tset2.jsp的代码如下:

  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%> 
  2. <%  
  3. Stringpath=request.getContextPath();  
  4. StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %> 
  6. > 
  7. <html> 
  8. <head> 
  9. <basehrefbasehref="<%=basePath%>"> 
  10. <title>MyJSP'test2.jsp'startingpagetitle> 
  11. <metahttp-equivmetahttp-equiv="pragma"content="no-cache"> 
  12. <metahttp-equivmetahttp-equiv="cache-control"content="no-cache"> 
  13. <metahttp-equivmetahttp-equiv="expires"content="0"> 
  14. <metahttp-equivmetahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> 
  15. <metahttp-equivmetahttp-equiv="description"content="Thisismypage"> 
  16.  
  17. head> 
  18. <body> 
  19. <%  
  20. Stringvalue=request.getParameter("param");  
  21. out.print("从test1.jsp传递过来的值是"+value);  
  22. %> 
  23. body> 
  24. html> 

具体思路如下:

在JSP页面传值test1.jsp中,通过JavaScript把文本框中的值获取出来,,使test1.jsp在加载进来的时候马上执行页面跳转;

在JSP页面传值test2.jsp中通过request.getParameter("参数名称");来获取test1.jsp传递过来的值即可。

正文到此结束
Loading...