struts nested标签

nested 标签就是把表单直接对应到一个业务类对象,在FORM类中定义这个业务类对象就可,这个标签用起来也不难,而且还挺好用, 比如说有个 表单类PersonForm,业务类Person,在PersonForm中定义 Person person=new Person(); 注意这里用new分配空间,不能只是这样 Person person;     

在Person类中定义 private String name; private String sex;

那么在.jsp中表单部分如下:

  1. //其他代码      
  2.  <html:form action="/PersonAction">      
  3.  <nested:nest property="person">      
  4.      <nested:message key="use_nested.jsp.form.name"/>      
  5.      <nested:text property="name" size="18"/><br/>      
  6.      <nested:message key="use_nested.jsp.form.sex"/>      
  7.      <nested:text property="sex" size="18" /><br/>      
  8.  nested:nest>      
  9.  <html:submit>      
  10.  <bean:message key="use_nested.jsp.form.submit"/>      
  11.  html:submit>      
  12.  html:form>      
  13. //其他代码  

其中 理解就是定义一个类层次,它也可以嵌套使用,当业务类中还包含其他业务类时就可以使用它的嵌套,当使用嵌套时如果 想显式知道嵌套的层次可以利用nested 标签的 nested:writeNesting  标签进行输出。比如现在我们再加一个业务类 Address ,类中数据元素为:private String country;  private  String province;      
然后在 业务类 Person 中加上 private  Address  add=new Address();   

结合 nested:writeNesting 后的.jsp 为:

xml 代码
  1. ///其他代码      
  2.  <html:form action="/PersonAction">      
  3.  <nested:nest property="person">      
  4.     <nested:message key="use_nested.jsp.form.currentNesting"/>      
  5.     <nested:writeNesting/><br/>      
  6.     <nested:message key="use_nested.jsp.form.name"/>      
  7.     <nested:text property="name" size="18"/><br/>      
  8.     <nested:message key="use_nested.jsp.form.sex"/>      
  9.     <nested:text property="sex" size="18" /><br/>      
  10.      
  11.     <nested:nest property="add">      
  12.         <nested:message key="use_nested.jsp.form.currentNesting"/>      
  13.         <nested:writeNesting/>      
  14.         <nested:message key="use_nested.jsp.form.country"/>      
  15.         <nested:text property="country" size="18"/><br/>      
  16.         <nested:message key="use_nested.jsp.form.province"/>      
  17.         <nested:text property="province" size="18"/><br/>      
  18.      nested:nest>      
  19.  nested:nest>      
  20.  <html:submit>      
  21.  <bean:message key="use_nested.jsp.form.submit"/>      
  22.  html:submit>      
  23.  html:form>      
  24. ///其他代码  

其中第二个 nested:writeNesting 会输出 person.add 表明当前类层次, 当你输出表单数据时 还可以定义一个顶层级别的 javaBean,这时候就利用 nested 的 nested:root 标签,比如要输出上个表单元素时,顶层级别就是 PersonForm ,其他则与上面是一样,如下:

xml 代码
  1. //其他代码      
  2. <jsp:useBean id="PersonForm" type="nestedtag.PersonForm" scope="request" />      
  3. <nested:root name="PersonForm">      
  4.    <nested:nest property="person">      
  5.    <nested:message key="use_nested.jsp.form.name"/>      
  6.    <nested:write property="name"/><br/>      
  7.    <nested:message key="use_nested.jsp.form.sex" />      
  8.    <nested:write property="sex"/><br/>    
  9.      
  10.    <nested:nest property="add">      
  11.        <nested:message key="use_nested.jsp.form.country"/>      
  12.        <nested:write property="country"/><br/>      
  13.        <nested:message key="use_nested.jsp.form.province"/>      
  14.        <nested:write property="province"/><br/>      
  15.    nested:nest>      
  16.    nested:nest>      
  17. nested:root>      
  18. //其他代码  

nested 的其他子标签则与 html子标签和 bean子标签的功能类似,就不用介绍了。

最后说明的是,利用nest 实现的功能也可以不用 nest 实现,只不过写 property 是把完整的属性路径写全就行了,因为比较简单看了下面的代码就明白了

xml 代码
  1. //其他代码      
  2. <html:form action="/PersonAction">      
  3. <bean:message key="use_nested.jsp.form.name"/>      
  4. <html:text property="person.name" size="18"/><br/>      
  5. <bean:message key="use_nested.jsp.form.sex"/>      
  6. <html:text property="person.sex" size="18" /><br/>      
  7.     
  8. <bean:message key="use_nested.jsp.form.country"/>      
  9. <html:text property="person.add.country" size="18"/><br/>      
  10. <bean:message key="use_nested.jsp.form.province"/>      
  11. <html:text property="person.add.province" size="18"/><br/>      
  12.     
  13. <html:submit>      
  14. <bean:message key="use_nested.jsp.form.submit"/>      
  15. html:submit>      
  16. html:form>      
  17. //其他代码  
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值