jsp动作标签(userBean get/setProperty)
2016-07-30 15:58
441 查看
<jsp:userBean id="" class="" scope=""/>获取一个值对象
属性: class--->一个可访问到的类名(带类名的访问路径/全限类名)字符串
new一个该class类的类对象
id--->创建类对象 的 对象变量名
scope---->指定的容器 (即可访问作用域)page/request/session/app四种从小到大,默认page
代码示例:
<jsp:useBean id="user" class="cn.hncu.elWeb.domain.UserModel" scope="request" ></jsp:useBean>在request设置属性为:一个名为user的cn.hncu.elWeb.domain.UserModel类对象
解析源代码:
cn.hncu.elWeb.domain.UserModel user = null;
user = (cn.hncu.elWeb.domain.UserModel) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.REQUEST_SCOPE);
if (user == null){
user = new cn.hncu.elWeb.domain.UserModel();
_jspx_page_context.setAttribute("user", user, javax.servlet.jsp.PageContext.REQUEST_SCOPE);
}
<jsp:setProperty property="" name="" param="" value=""/>对值对象设置属性值
属性:name--->设置属性的对象名(userBean的id值)
property--->要设置的属性名(该name类对象的成员变量名)
value---->指定属性名的值
param----->参数名(表单组件的组件名)获取该组件提交的value值
param/value可不添加 或者添加其中一个(不可同时添加)
代码示例:
<!-- 第一种 ,value指定属性值
<jsp:setProperty property="userName" name="user" value="张阿三"/>
<jsp:setProperty property="userPwd" name="user" value="1234"/>
-->
<!-- 与表单名有关,若表单无值提交,则不赋值 -->
<!-- 第二种 ,param获取表单提交值-->
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="userPwd" name="user" param="userPwd"/>
<!-- 第三种 ,默认部分对应获取对应值及 property==param
<jsp:setProperty property="userName" name="user" />
<jsp:setProperty property="userPwd" name="user" />
-->
<!-- 第四种 ,全部对应获取对应值及 property==param
<jsp:setProperty property="*" name="user" />
-->解析源代码:
out.write(" <!-- 第一种 ,value指定属性值\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", "张阿三", null, null, false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", "1234", null, null, false);
out.write(" <!-- 与表单名有关,若表单无值提交,则不赋值 -->\r\n");
out.write(" <!-- 第二种 ,param获取表单提交值-->\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", request.getParameter("userName"), request, "userName", false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", request.getParameter("userPwd"), request, "userPwd", false);
out.write(" <!-- 第三种 ,默认部分对应获取对应值及 property==param\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", request.getParameter("userName"), request, "userName", false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", request.getParameter("userPwd"), request, "userPwd", false);
out.write(" <!-- 第四种 ,全部对应获取对应值及 property==param\r\n");
out.write(" ");
org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("user"), request);
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${user}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false));
<jsp:getProperty property="" name=""/>获取值对象的属性值
属性:name--->设置属性的对象名(userBean的id值)
property--->要设置的属性名(该name类对象的成员变量名)
代码示例:
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="userPwd" name="user"/>
解析源代码:
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((cn.hncu.elWeb.domain.UserModel)_jspx_page_context.findAttribute("user")).getUserName())));
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((cn.hncu.elWeb.domain.UserModel)_jspx_page_context.findAttribute("user")).getUserPwd())));
注意:
1:jsp:getProperty中的property值对应的是相应的get函数名
2:jsp:setProperty中的property值是调用org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper()函数,并非是获取类对象调用set函数
原因:解决当对象属性变量类型与value类型不一致
解决办法:introspecthelper()中解决(别人做好了,我们注意用法即可:)
用法:1:对应value值得类型,自建getter/setter函数替代,
2:删除原变量类型的getter/setter函数
3:property值为替代函数的小写函数名(不带get/set)
代码实例:
前端jsp代码:
<form action="show.jsp" method="post">
姓名:<input type="text" name="userName">
密码:<input type="password" name="userPwd">
爱好: <input type="checkbox" name="userbody" value="MISIC"/>音乐
<input type="checkbox" name="userbody" value="TV"/>电视
<input type="checkbox" name="userbody" value="EAT"/>吃
出生日期:<input type="text" name="brityday">
<input type="submit" value="提交">
</form>接受并显示的jsp动作标签代码:
<span style="color:#000000;"><jsp:useBean id="user" class="cn.hncu.elWeb.domain.UserModel" scope="request" ></jsp:useBean>
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="userPwd" name="user" param="userPwd"/>
<jsp:setProperty property="userbody" name="user" param="userbody"/>
<jsp:setProperty property="brity" name="user" param="brityday"/>
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="userPwd" name="user"/>
<jsp:getProperty property="userbody" name="user"/>
<jsp:getProperty property="brity" name="user"/></span>值对象:
属性: class--->一个可访问到的类名(带类名的访问路径/全限类名)字符串
new一个该class类的类对象
id--->创建类对象 的 对象变量名
scope---->指定的容器 (即可访问作用域)page/request/session/app四种从小到大,默认page
代码示例:
<jsp:useBean id="user" class="cn.hncu.elWeb.domain.UserModel" scope="request" ></jsp:useBean>在request设置属性为:一个名为user的cn.hncu.elWeb.domain.UserModel类对象
解析源代码:
cn.hncu.elWeb.domain.UserModel user = null;
user = (cn.hncu.elWeb.domain.UserModel) _jspx_page_context.getAttribute("user", javax.servlet.jsp.PageContext.REQUEST_SCOPE);
if (user == null){
user = new cn.hncu.elWeb.domain.UserModel();
_jspx_page_context.setAttribute("user", user, javax.servlet.jsp.PageContext.REQUEST_SCOPE);
}
<jsp:setProperty property="" name="" param="" value=""/>对值对象设置属性值
属性:name--->设置属性的对象名(userBean的id值)
property--->要设置的属性名(该name类对象的成员变量名)
value---->指定属性名的值
param----->参数名(表单组件的组件名)获取该组件提交的value值
param/value可不添加 或者添加其中一个(不可同时添加)
代码示例:
<!-- 第一种 ,value指定属性值
<jsp:setProperty property="userName" name="user" value="张阿三"/>
<jsp:setProperty property="userPwd" name="user" value="1234"/>
-->
<!-- 与表单名有关,若表单无值提交,则不赋值 -->
<!-- 第二种 ,param获取表单提交值-->
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="userPwd" name="user" param="userPwd"/>
<!-- 第三种 ,默认部分对应获取对应值及 property==param
<jsp:setProperty property="userName" name="user" />
<jsp:setProperty property="userPwd" name="user" />
-->
<!-- 第四种 ,全部对应获取对应值及 property==param
<jsp:setProperty property="*" name="user" />
-->解析源代码:
out.write(" <!-- 第一种 ,value指定属性值\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", "张阿三", null, null, false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", "1234", null, null, false);
out.write(" <!-- 与表单名有关,若表单无值提交,则不赋值 -->\r\n");
out.write(" <!-- 第二种 ,param获取表单提交值-->\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", request.getParameter("userName"), request, "userName", false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", request.getParameter("userPwd"), request, "userPwd", false);
out.write(" <!-- 第三种 ,默认部分对应获取对应值及 property==param\r\n");
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userName", request.getParameter("userName"), request, "userName", false);
org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("user"), "userPwd", request.getParameter("userPwd"), request, "userPwd", false);
out.write(" <!-- 第四种 ,全部对应获取对应值及 property==param\r\n");
out.write(" ");
org.apache.jasper.runtime.JspRuntimeLibrary.introspect(_jspx_page_context.findAttribute("user"), request);
out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${user}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null, false));
<jsp:getProperty property="" name=""/>获取值对象的属性值
属性:name--->设置属性的对象名(userBean的id值)
property--->要设置的属性名(该name类对象的成员变量名)
代码示例:
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="userPwd" name="user"/>
解析源代码:
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((cn.hncu.elWeb.domain.UserModel)_jspx_page_context.findAttribute("user")).getUserName())));
out.write(org.apache.jasper.runtime.JspRuntimeLibrary.toString((((cn.hncu.elWeb.domain.UserModel)_jspx_page_context.findAttribute("user")).getUserPwd())));
注意:
1:jsp:getProperty中的property值对应的是相应的get函数名
2:jsp:setProperty中的property值是调用org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper()函数,并非是获取类对象调用set函数
原因:解决当对象属性变量类型与value类型不一致
解决办法:introspecthelper()中解决(别人做好了,我们注意用法即可:)
用法:1:对应value值得类型,自建getter/setter函数替代,
2:删除原变量类型的getter/setter函数
3:property值为替代函数的小写函数名(不带get/set)
代码实例:
前端jsp代码:
<form action="show.jsp" method="post">
姓名:<input type="text" name="userName">
密码:<input type="password" name="userPwd">
爱好: <input type="checkbox" name="userbody" value="MISIC"/>音乐
<input type="checkbox" name="userbody" value="TV"/>电视
<input type="checkbox" name="userbody" value="EAT"/>吃
出生日期:<input type="text" name="brityday">
<input type="submit" value="提交">
</form>接受并显示的jsp动作标签代码:
<span style="color:#000000;"><jsp:useBean id="user" class="cn.hncu.elWeb.domain.UserModel" scope="request" ></jsp:useBean>
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="userPwd" name="user" param="userPwd"/>
<jsp:setProperty property="userbody" name="user" param="userbody"/>
<jsp:setProperty property="brity" name="user" param="brityday"/>
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="userPwd" name="user"/>
<jsp:getProperty property="userbody" name="user"/>
<jsp:getProperty property="brity" name="user"/></span>值对象:
<span style="color:#000000;">package cn.hncu.elWeb.domain; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class UserModel { private String userName; private String userPwd; private String[] userbody; private Date brityday; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserPwd() { return userPwd; } public void setUserPwd(String userPwd) { this.userPwd = userPwd; } public String[] getUserbody() { return userbody; } public void setUserbody(String[] userbody) { this.userbody = userbody; } public String getBrity() { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(brityday); } public void setBrity(String brity) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { brityday=sdf.parse(brity); } catch (ParseException e) { throw new RuntimeException("输入格式错误"); } } }</span>
相关文章推荐
- JavaBean与Jsp、在JSP中使用JavaBean(<jsp:useBean>标签、<jsp:setProperty>标签、<jsp:getProperty>标签)
- javaBean=====jsp标签之<jsp:setProperty> <jsp:getProperty>
- JSP标签的<jsp:useBean>和<jsp:setProperty><jsp:getProperty>的使用
- 关于jsp中使用 <jsp:userBean/> <jsp:setProperty/> <jsp:getProperty/>
- jsp的6个动作(<jsp:include><jsp:forward><jsp:param><jsp:useBean><jsp:setProperty><jsp:getProperty>)
- JSP userBean setProperty getProperty指令使用
- JSP使用get/setProperty时,Bean的scope 改变引起的问题
- <jsp:useBean>标签和<jsp:setProperty>标签 笔记
- JSP userBean setProperty直接从request中获取参数
- JSP使用get/setProperty时,Bean的scope 改变引起的问题
- jsp:usebean setProperty getProperty
- JavaBean中的<jsp:getProperty>标签与<jsp:setProperty>标签
- [JSP]标准标签、<jsp:include、forward、param、useBean、setProperty、getProperty>
- Get/Set a bean property
- useBean setProperty getPropertyl理解
- JSP+JavaBean不能使用jsp:setProperty name="BeanName" property="*"/>来自动提交日期表单
- jsp---用标签操作javaBean(动作标签BeanTest.jsp)
- jsp的动作之userbean,setproperty,getproperty
- JSP动作标签useBean--<jsp:useBean> 创建一个对象
- [JSP]标准标签、<jsp:include、forward、param、useBean、setProperty、getProperty>