论坛首页 Java企业应用论坛

struts里nested标签的简单应用

浏览 4824 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-21  

我感觉 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. //其他代码  
   发表时间:2006-12-21  
代码里有些没有前面的尖括号,不知道怎么没了,不过应该不影响阅读吧
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics