本系列博客汇总在这里:JSP 汇总

 

 


JSP 动态标签

useBean、setProperty、getProperty 动态标签

  1. useBean
    先说一下与 JavaBean 相关的动态标签在 JSP Model2 中已经很少使用了。在 JSP Model1 中,JSP 页面直接使用 JavaBean,那里使用这些标签是很有用的!但是,这里还是要介绍一下。
    在开始测试 JavaBean 动态标签之前,我们需要先创建一个 javaBean 类:cn.wyx.Person 类。
    因为 useBean 标签有点小复杂,所以我们把 useBean 标签的作用直接翻译成 Java 代码!
    <jsp:useBean id="p1" class="cn.wyx.Person" />
    
    <%
    	Person p1 = (Person)pageContext.getAttribute("p1");
    	if(p1 == null) 
    	{
    		p1 = new Person();
            pageContext.setAttribute("p1", p1);
    	}
    %>
    
    <jsp:useBean id="p1" class="cn.wyx.Person" scope="session" />
    
    <%
    	Person p1 = (Person)session.getAttribute("p1");
    	if(p1 == null) 
    	{
    		p1 = new Person();
            session.setAttribute("p1", p1);
    	}
    %>
    
  2. setProperty
    setProperty 标签的作用是给 Bean 设置属性值。当然,你必须保证 Bean 已经存在的前提下才能设置属性值。
    <jsp:useBean id="p1" class="cn.wyx.Person" />
    <jsp:setProperty property="sex" value="male" name="p1"/>
    
    <%
    	Person p = (Person)pageContext.getAttribute("p1");
    	if(p == null) 
    	{
    		throw new NullPointerException();
    	}
    	p.setSex("male");
    %>
    
  3. getProperty
    getProperty 标签的作用是获取 Bean 的属性值。
    <jsp:useBean id="p1" class="cn.wyx.Person" />
    <jsp:setProperty property="sex" value="male" name="p1"/>
    <jsp:getProperty property="sex" name="p1" />
    
  4. setProperty 的自省机制
    form.jsp
    <form action="bean.jsp" method="post">
       	姓名:<input type="text" name="name"/><br/>
       	年龄:<input type="text" name="age"/><br/>
       	性别:<input type="text" name="sex"/><br/>
       	<input type="submit" value="提交"/>
    </form>
    
    bean.jsp
    <jsp:useBean id="p1" class="cn.wyx.Person" />
    <jsp:setProperty property="*" name="p1"/>
    <%=p1 %>
    

如有错误,欢迎指正!