在jsp學習中,經常需要在一個jsp頁面中調用另一個jsp頁面中的變數,下面就這幾天的學習,總結一下。
jsp頁面之間的變數調用有多種方法:
1、通過jsp的內建對象—request對象擷取參數:
(1)通過超連結傳參:
例:把a.jsp中i的值傳到b.jsp中:
在a.jsp頁面中的核心代碼為:
<a href="b.jsp?i=1">傳參</a> (說明:給i賦值時也可以用jsp運算式,例如i=<%變數名 %>)
在b.jsp頁面中的核心代碼為:
<%String j=request.getParameter("i"); %>
<%=j %>
(2)通過表單傳參:
例:把a.jsp中表單中的name的值傳送到b.jsp中:
在a.jsp頁面中的核心代碼為:
<form action="b.jsp" method="post"> <ul> <li><input type="text" name="username"> <li>w<input type="submit" name="submit" value="提交"> <ul> </form>
在b.jsp頁面中的核心代碼為;
<%String getUserName=request.getParameter("username");>
<%=getUserName %>
(3)通過表單的隱藏欄位傳參:
例:把a.jsp中定義的變數傳送到b.jsp中;
在a.jsp中的核心代碼為:
<%!int a=4; %> <form action="b.jsp" method="post"> <input type="hide" name="b" value=<%a%>> <input type="submit" value="提交"> </form>
在b.jsp中的核心代碼為:
<%int c=(Integer)request.getAttribute("b"); %>
本欄目更多精彩內容:http://www.bianceng.cn/webkf/JSP/
(上段代碼或者為<%String c=request.getAttribute("c").toString(); %>等等,類型轉換通java一樣)
<%=c %>
運行結果:變數a=4的值通過表單隱藏欄位b傳到b.jsp中的c中。
2、通過JavaBean擷取表單資訊:
例:用JavaBean擷取使用者登入表單資訊:
Login.jsp中的核心代碼為:
<form action="Deal.jsp" method="post"> <ul> <li>使用者名稱:<input type="text" name="username"> <li>密碼:<input type="password" name="password"> <li><input type="submit" name="submit" value="登入"> </ul> </form>
JavaBean中的核心代碼為:
package com; public class UserBean{ private String username; private String password; public String getUserName(){ return username; } public void setUserName(String username){ this.username=username; } public String getPassword(){ return password; } public void setPassword(String password){ this.password=password; } }
Deal.jsp中的核心代碼為:
<jsp:useBean id="user" class="com.UserBean" > <jsp:setProperty name="user" property="*"> <%String username=user.getUserName();%> <%String password=user.getPassword();%>
得到的使用者名稱為:<%=username%><br>
得到的密碼為:<%=password%>
其中,Deal.jsp中的<jsp:setProperty name="user" property="*">中的星號是表示對所有同名的屬性賦值,當然還可以對屬性選擇性地賦值: <jsp:setProperty name="user" property="username">、<jsp:setProperty name="user" property="password">等。
當然肯定還有更好更多的方法,期待高手賜教。