struts中nested标签的简单应用(转帖)

我感觉 nested 标签就是把表单直接对应到一个业务类对象,在FORM类中定义这个业务类对象就可,这个标签用起来也不难,而且还挺好用,

比如说有个 表单类PersonForm,业务类Person,在PersonForm中定义 Person person=new Person(); 注意这里用new分配空间,不能只是这样 Person person;                 在Person类中定义 private String name; private String sex;

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

java 代码
  1. ///其他代码   
  2. <html:form action="PersonAction">   
  3. <nested:nest property="person>  
  4. name: <nested:text property="name"/><br/>  
  5. sex:    <nested:text  property="sex"  /><br/>   
  6. </nested:nest>   
  7. <html:submit/>   
  8. </html:form>   
  9. //其他代码  

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

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

其中 <nested:writeNesting/> 出会输出 person.add 表明当前类层次

当你输出表单数据时 还可以定义一个顶层级别的 javaBean,这时候就利用 nested 的 <nested:root> 标签,比如要输出上个表单元素时,顶层级别就是 PersonForm ,其他则与上面是一样,如下:

java 代码
  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"/><nested:write property="name"/><br/>  
  6.     <nested:message key="use_nested.jsp.form.sex" /><nested:write property="sex"/><br/>   
  7.         <nested:nest property="add">   
  8.         <nested:message key="use_nested.jsp.form.country"/><nested:write property="country"/><br/>  
  9.         <nested:message key="use_nested.jsp.form.province"/><nested:write property="province"/><br/>  
  10.         </nested:nest>   
  11.     </nested:nest>   
  12. </nested:root>   
  13. ///其他代码  

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

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值