當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSP userBean setProperty getProperty指令使用
生活随笔
收集整理的這篇文章主要介紹了
JSP userBean setProperty getProperty指令使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JSP userBean setProperty getProperty指令使用
javaBean的屬性取決于get/set方法,而不是真實的屬性名稱。
jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";pageContext.setAttribute("pca", "pageContextAttribute"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>009index</title> </head> <body><jsp:useBean id="person" class="com.stono.servlet.bean.Person"><jsp:setProperty property="name" name="person" value="stono" /></jsp:useBean><jsp:getProperty property="name" name="person" /> </body> </html>?
轉換的java文件:
/** Generated by the Jasper component of Apache Tomcat* Version: Apache Tomcat/7.0.35* Generated at: 2015-10-20 04:32:26 UTC* Note: The last modified time of this file was set to* the last modified time of the source file after* generation to assist with modification tracking.*/ package org.apache.jsp;import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import java.util.*;public final class index009_jsp extends org.apache.jasper.runtime.HttpJspBaseimplements org.apache.jasper.runtime.JspSourceDependent {private static final javax.servlet.jsp.JspFactory _jspxFactory =javax.servlet.jsp.JspFactory.getDefaultFactory();private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;private javax.el.ExpressionFactory _el_expressionfactory;private org.apache.tomcat.InstanceManager _jsp_instancemanager;public java.util.Map<java.lang.String,java.lang.Long> getDependants() {return _jspx_dependants;}public void _jspInit() {_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());}public void _jspDestroy() {}public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)throws java.io.IOException, javax.servlet.ServletException {final javax.servlet.jsp.PageContext pageContext;javax.servlet.http.HttpSession session = null;final javax.servlet.ServletContext application;final javax.servlet.ServletConfig config;javax.servlet.jsp.JspWriter out = null;final java.lang.Object page = this;javax.servlet.jsp.JspWriter _jspx_out = null;javax.servlet.jsp.PageContext _jspx_page_context = null;try {response.setContentType("text/html;charset=UTF-8");pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);_jspx_page_context = pageContext;application = pageContext.getServletContext();config = pageContext.getServletConfig();session = pageContext.getSession();out = pageContext.getOut();_jspx_out = out;out.write('\r');out.write('\n');String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";pageContext.setAttribute("pca", "pageContextAttribute");out.write("\r\n");out.write("<!DOCTYPE html>\r\n");out.write("<html>\r\n");out.write("<head>\r\n");out.write("<meta charset=\"UTF-8\">\r\n");out.write("<title>009index</title>\r\n");out.write("</head>\r\n");out.write("<body>\r\n");out.write("\t");com.stono.servlet.bean.Person person = null;person = (com.stono.servlet.bean.Person) _jspx_page_context.getAttribute("person", javax.servlet.jsp.PageContext.PAGE_SCOPE);if (person == null){person = new com.stono.servlet.bean.Person();_jspx_page_context.setAttribute("person", person, javax.servlet.jsp.PageContext.PAGE_SCOPE);out.write("\r\n");out.write("\t\t");org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("person"), "name", "stono", null, null, false);out.write('\r');out.write('\n');out.write(' ');}out.write('\r');out.write('\n');out.write(' ');out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((com.stono.servlet.bean.Person)_jspx_page_context.findAttribute("person")).getName())));out.write("\r\n");out.write("\t\r\n");out.write("</body>\r\n");out.write("</html>\r\n");} catch (java.lang.Throwable t) {if (!(t instanceof javax.servlet.jsp.SkipPageException)){out = _jspx_out;if (out != null && out.getBufferSize() != 0)try { out.clearBuffer(); } catch (java.io.IOException e) {}if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);else throw new ServletException(t);}} finally {_jspxFactory.releasePageContext(_jspx_page_context);}} }?JavaBean:
package com.stono.servlet.bean; public class Person {// 對外的屬性名稱還是name,private String name2;public String getName() {return name2;}public void setName(String name) {this.name2 = name;} }?jsp:userBean的使用:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%String path = request.getContextPath();String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";pageContext.setAttribute("pca", "pageContextAttribute"); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>009index</title> </head> <body><p>jsp:useBean id="person" class="com.stono.servlet.bean.Person",如果Person是抽象類,會有異常:<pre> 嚴重: Servlet.service() for servlet [jsp] in context with path [/TestBootWeb] threw exception [/index013.jsp (line: 14, column: 1) The value for the useBean class attribute com.stono.servlet.bean.Person is invalid.] with root causeorg.apache.jasper.JasperException: /index013.jsp (line: 14, column: 1) The value for the useBean class attribute com.stono.servlet.bean.Person is invalid.</pre></p><p>對于抽象類需要使用jsp:useBean id="person" type="com.stono.servlet.bean.Person" class="com.stono.servlet.bean.Employee"進行使用。</p><jsp:useBean id="person" type="com.stono.servlet.bean.Person" class="com.stono.servlet.bean.Employee"><jsp:setProperty property="name" name="person" value="stono" /></jsp:useBean><jsp:getProperty property="name" name="person" /><p>直接輸入jsp:useBean id="person2" type="com.stono.servlet.bean.Person"會報錯:<pre>嚴重: Servlet.service() for servlet [jsp] in context with path [/TestBootWeb] threw exception [javax.servlet.ServletException: java.lang.InstantiationException: bean person2 not found within scope] with root causejava.lang.InstantiationException: bean person2 not found within scope </pre>輸入jsp:useBean id="person" type="com.stono.servlet.bean.Person"也是有問題的:<pre>嚴重: Servlet.service() for servlet [jsp] in context with path [/TestBootWeb] threw exception [/index013.jsp (line: 35, column: 1) useBean: Duplicate bean name: {0}] with root causeorg.apache.jasper.JasperException: /index013.jsp (line: 35, column: 1) useBean: Duplicate bean name: {0} </pre></p><p>在servlet中進行request.setAttribute("person3",person3),但是在jsp中直接寫:jsp:useBean id="person3" type="com.stono.servlet.bean.Person"會報錯:<pre>嚴重: Servlet.service() for servlet jsp threw exceptionjava.lang.InstantiationException: bean person3 not found within scope </pre>因為默認的scope是page;修改為scope="request",就可以讀取到request傳遞過來的值;</p><p>如果希望使用jsp:useBean id="person3" type="com.stono.servlet.bean.Person",還不能在scriplet中使用名稱為person3的變量,需要如下定義使用:<pre><%@ page import="com.stono.servlet.bean.*" %><%Person person33 = new Employee();person33.setName("stono3inJsp");pageContext.setAttribute("person3", person33);%><jsp:useBean id="person3" type="com.stono.servlet.bean.Person"></jsp:useBean><jsp:getProperty property="name" name="person3"/></pre></p> </body> </html>?
轉載于:https://www.cnblogs.com/stono/p/4894445.html
總結
以上是生活随笔為你收集整理的JSP userBean setProperty getProperty指令使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax传递数组:属性tradition
- 下一篇: 一套完整的用户增长系统架构