本系列博客汇总在这里:JSP 汇总
JSP 动态标签
useBean、setProperty、getProperty 动态标签
- 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); } %>
- 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"); %>
- 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" />
- setProperty 的自省机制
form.jsp
bean.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>
<jsp:useBean id="p1" class="cn.wyx.Person" /> <jsp:setProperty property="*" name="p1"/> <%=p1 %>
如有错误,欢迎指正!