jsp:setProperty
類聲明:
package test;
public class Student {
?? ?private int age;
?? ?public int getAge() {
?? ??? ?return age;
?? ?}
?? ?public void setAge(int age) {
?? ??? ?this.age = age;
?? ?}
}
jsp代碼:? ??
<jsp:useBean id="student" scope="session" class="test.Student"></jsp:useBean>
<jsp:setProperty property="age" name="student"? value="12"/>
?<jsp:setProperty property="age" name="student"? param="12"/>? 此處12只是一個參數名字
?<jsp:getProperty property="age" name="student"/>
=》12
源碼如下:
?
????? test.Student student = null;
????? synchronized (session) {
??????? student = (test.Student) _jspx_page_context.getAttribute("student", PageContext.SESSION_SCOPE);
??????? if (student == null){
????????? student = new test.Student();
????????? _jspx_page_context.setAttribute("student", student, PageContext.SESSION_SCOPE);
??????? }
????? }
????? out.write("\r\n");
????? out.write("? \t");
????? org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("student"), "age", "12", null, null, false);
????? out.write("\r\n");
????? out.write("? \t");
????? org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("student"), "age", request.getParameter("12"), request, "12", false);
????? out.write("\r\n");
????? out.write("? \t");
????? out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((test.Student)_jspx_page_context.findAttribute("student")).getAge())));
?
解釋:
1.
<jsp:useBean id="student" scope="request" class="test.Student"></jsp:useBean>
<jsp:setProperty property="age" name="student"? value="12"/>必須和<jsp:useBean配套使用
2.在useBean中聲明要放在哪個useBean范圍內:page,request,session,application,然后指定id也就是屬性名和class也就是屬性類型。
3.利用setProperty往useBean聲明的變量中放置值,property為屬性的變量名,name為useBean中聲明的id名這兩者必須相同,因為是將值設置到id指定的屬性中去,value直接設置屬性值,param則是接受傳遞過來的參數值設置到屬性中,如request.getParameter。
param例子:
test2.jsp:
<jsp:forward page="test3.jsp">
<jsp:param value="10" name="age"/>
</jsp:forward>
test3.jsp:
<jsp:useBean id="student" scope="request" class="test.Student"></jsp:useBean>
<jsp:setProperty property="age" name="student" param="age"/>
<jsp:getProperty property="age" name="student"/>
結果為:10
4.通過getProperty從id中取直,property指定屬性名,那么指定從哪個id中取值。
注意:修改scope范圍生成的servlet中的源代碼只有以下部分發生改變
? synchronized (session) {
??????? student = (test.Student) _jspx_page_context.getAttribute("student", PageContext.SESSION_SCOPE);
??????? if (student == null){
????????? student = new test.Student();
????????? _jspx_page_context.setAttribute("student", student, PageContext.SESSION_SCOPE);
??????? }
????? }
此代碼先判斷在session中是否存在student對象不存在創建一個放入session中,如果存在則不創建。之后設置值時就是往該對象中放置。
?
轉載于:https://www.cnblogs.com/pangblog/p/3292229.html
總結
以上是生活随笔為你收集整理的jsp:setProperty的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android ndk 架构,NDK需要
- 下一篇: mysql简单触发器实例_MySQL 触